fastlane 2.232.2 → 2.233.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +98 -98
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +4 -0
- data/deliver/lib/deliver/detect_values.rb +2 -0
- data/deliver/lib/deliver/options.rb +23 -0
- data/deliver/lib/deliver/runner.rb +17 -12
- data/deliver/lib/deliver/sync_app_previews.rb +204 -0
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +5 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +20 -4
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -0
- data/fastlane/lib/fastlane/actions/resign.rb +13 -2
- data/fastlane/lib/fastlane/actions/swiftlint.rb +8 -1
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -1
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +5 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +29 -1
- data/fastlane/swift/Fastlane.swift +105 -9
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +8 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +8 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +48 -17
- data/fastlane_core/lib/fastlane_core/video_utils.rb +202 -0
- data/frameit/lib/frameit/device_types.rb +2 -2
- data/gym/lib/gym/generators/build_command_generator.rb +2 -1
- data/gym/lib/gym/options.rb +5 -0
- data/match/lib/match/generator.rb +3 -1
- data/match/lib/match/options.rb +5 -0
- data/match/lib/match/runner.rb +12 -7
- data/match/lib/match/storage/s3_storage.rb +4 -1
- data/match/lib/match/storage.rb +1 -0
- data/pilot/lib/pilot/build_manager.rb +4 -12
- data/pilot/lib/pilot/options.rb +4 -0
- data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/README.md +54 -0
- data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +2 -1
- data/scan/lib/scan/detect_values.rb +11 -3
- data/sigh/lib/assets/resign.sh +17 -5
- data/sigh/lib/sigh/commands_generator.rb +1 -0
- data/sigh/lib/sigh/manager.rb +6 -6
- data/sigh/lib/sigh/resign.rb +9 -6
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +54 -17
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +1 -2
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +2 -2
- data/trainer/lib/trainer/legacy_xcresult.rb +27 -20
- data/trainer/lib/trainer/xcresult/test_suite.rb +4 -1
- metadata +25 -22
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<img src="/img/actions/deliver.png" width="250">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
_deliver_ uploads screenshots, metadata and binaries to App Store Connect. Use _deliver_ to submit your app for App Store review.
|
|
5
|
+
_deliver_ uploads screenshots, App Preview videos, metadata and binaries to App Store Connect. Use _deliver_ to submit your app for App Store review.
|
|
6
6
|
|
|
7
7
|
-------
|
|
8
8
|
|
|
@@ -18,7 +18,7 @@ _deliver_ uploads screenshots, metadata and binaries to App Store Connect. Use _
|
|
|
18
18
|
<h5 align="center"><code>deliver</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
|
|
19
19
|
|
|
20
20
|
# Features
|
|
21
|
-
- Upload hundreds of localized screenshots completely automatically
|
|
21
|
+
- Upload hundreds of localized screenshots and App Preview videos completely automatically
|
|
22
22
|
- Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac
|
|
23
23
|
- Maintain your app metadata locally and push changes back to App Store Connect
|
|
24
24
|
- Easily implement a real Continuous Deployment process using [_fastlane_](https://fastlane.tools)
|
|
@@ -42,13 +42,13 @@ From now on, you can run `fastlane deliver` to deploy a new update, or just uplo
|
|
|
42
42
|
|
|
43
43
|
# Usage
|
|
44
44
|
|
|
45
|
-
Check out your local `./fastlane/metadata
|
|
45
|
+
Check out your local `./fastlane/metadata`, `./fastlane/screenshots`, and `./fastlane/app-previews` folders (if you don't use [_fastlane_](https://fastlane.tools) it's `./metadata` instead)
|
|
46
46
|
|
|
47
47
|

|
|
48
48
|
|
|
49
49
|
You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect.
|
|
50
50
|
|
|
51
|
-
Run `fastlane deliver` to upload the app metadata from your local machine
|
|
51
|
+
Run `fastlane deliver` to upload the app metadata, screenshots, and App Preview videos from your local machine
|
|
52
52
|
|
|
53
53
|
```no-highlight
|
|
54
54
|
fastlane deliver
|
|
@@ -175,6 +175,19 @@ A path to a folder containing subfolders for each language. This will automatica
|
|
|
175
175
|
|
|
176
176
|

|
|
177
177
|
|
|
178
|
+
##### app_previews_path
|
|
179
|
+
Path to the App Preview videos you want to upload. The folder must be structured with language-specific subfolders, similar to screenshots:
|
|
180
|
+
|
|
181
|
+

|
|
182
|
+
|
|
183
|
+
Up to 3 videos per locale and per device type are uploaded, then ordered by filename. Device type is inferred from the filename (case insensitive):
|
|
184
|
+
|
|
185
|
+
```no-highlight
|
|
186
|
+
<%= Spaceship::ConnectAPI::AppPreviewSet::PreviewType::ALL.join(', ') %>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
A preview poster frame is set using `preview_frame_time_code`.
|
|
190
|
+
|
|
178
191
|
##### metadata_path
|
|
179
192
|
Path to the metadata you want to use. The folder has to be structured like this
|
|
180
193
|
|
|
@@ -786,3 +799,6 @@ Change syntax highlighting to *Ruby*.
|
|
|
786
799
|
|
|
787
800
|
## Provider Short Name
|
|
788
801
|
If you are on multiple App Store Connect teams, _deliver_ needs a provider short name to know where to upload your binary. _deliver_ will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the `itc_provider` option.
|
|
802
|
+
|
|
803
|
+
## Provider Public ID
|
|
804
|
+
The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication.
|
|
@@ -264,6 +264,9 @@ _pilot_ uses the [CredentialsManager](https://github.com/fastlane/fastlane/tree/
|
|
|
264
264
|
## Provider Short Name
|
|
265
265
|
If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. _pilot_ will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the `itc_provider` option.
|
|
266
266
|
|
|
267
|
+
## Provider Public ID
|
|
268
|
+
The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication.
|
|
269
|
+
|
|
267
270
|
## Use an Application Specific Password to upload
|
|
268
271
|
|
|
269
272
|
_pilot_/`upload_to_testflight` can use an [Application Specific Password via the `FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD` environment variable](https://docs.fastlane.tools/best-practices/continuous-integration/#application-specific-passwords) to upload a binary if both the `skip_waiting_for_build_processing` and `apple_id` options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)
|
|
@@ -6,7 +6,7 @@ module Fastlane
|
|
|
6
6
|
require 'sigh'
|
|
7
7
|
|
|
8
8
|
# try to resign the ipa
|
|
9
|
-
if Sigh::Resign.resign(params[:ipa], params[:signing_identity], params[:provisioning_profile], params[:entitlements], params[:version], params[:display_name], params[:short_version], params[:bundle_version], params[:bundle_id], params[:use_app_entitlements], params[:keychain_path])
|
|
9
|
+
if Sigh::Resign.resign(params[:ipa], params[:signing_identity], params[:provisioning_profile], params[:entitlements], params[:version], params[:display_name], params[:short_version], params[:bundle_version], params[:bundle_id], params[:use_app_entitlements], params[:keychain_path], params[:pagesize])
|
|
10
10
|
UI.success('Successfully re-signed .ipa 🔏.')
|
|
11
11
|
else
|
|
12
12
|
UI.user_error!("Failed to re-sign .ipa")
|
|
@@ -109,7 +109,18 @@ module Fastlane
|
|
|
109
109
|
FastlaneCore::ConfigItem.new(key: :keychain_path,
|
|
110
110
|
env_name: "FL_RESIGN_KEYCHAIN_PATH",
|
|
111
111
|
description: "Provide a path to a keychain file that should be used by `/usr/bin/codesign`",
|
|
112
|
-
optional: true)
|
|
112
|
+
optional: true),
|
|
113
|
+
FastlaneCore::ConfigItem.new(key: :pagesize,
|
|
114
|
+
env_name: "FL_RESIGN_PAGESIZE",
|
|
115
|
+
description: "Page size in bytes passed to `/usr/bin/codesign --pagesize` (must be a power of two)",
|
|
116
|
+
type: Integer,
|
|
117
|
+
optional: true,
|
|
118
|
+
verify_block: proc do |value|
|
|
119
|
+
next if value.nil?
|
|
120
|
+
unless value.kind_of?(Integer) && value.positive? && (value & (value - 1)).zero?
|
|
121
|
+
UI.user_error!("'pagesize' must be a positive power of two. Provided value: #{value}")
|
|
122
|
+
end
|
|
123
|
+
end)
|
|
113
124
|
]
|
|
114
125
|
end
|
|
115
126
|
|
|
@@ -57,6 +57,7 @@ module Fastlane
|
|
|
57
57
|
command << supported_option_switch(params, :format, "0.11.0", true) if params[:mode] == :autocorrect
|
|
58
58
|
command << supported_no_cache_option(params) if params[:no_cache]
|
|
59
59
|
command << " --compiler-log-path #{params[:compiler_log_path].shellescape}" if params[:compiler_log_path]
|
|
60
|
+
command << supported_option_switch(params, :progress, "0.49.1", true) if params[:progress]
|
|
60
61
|
return command
|
|
61
62
|
end
|
|
62
63
|
|
|
@@ -182,7 +183,13 @@ module Fastlane
|
|
|
182
183
|
optional: true,
|
|
183
184
|
verify_block: proc do |value|
|
|
184
185
|
UI.user_error!("Couldn't find compiler_log_path '#{File.expand_path(value)}'") unless File.exist?(value)
|
|
185
|
-
end)
|
|
186
|
+
end),
|
|
187
|
+
FastlaneCore::ConfigItem.new(key: :progress,
|
|
188
|
+
env_name: "FL_SWIFTLINT_PROGRESS",
|
|
189
|
+
description: "Show a live-updating progress bar instead of each file being processed",
|
|
190
|
+
default_value: false,
|
|
191
|
+
type: Boolean,
|
|
192
|
+
optional: true)
|
|
186
193
|
]
|
|
187
194
|
end
|
|
188
195
|
|
|
@@ -34,7 +34,7 @@ module Fastlane
|
|
|
34
34
|
"If you don't want to verify an HTML preview for App Store builds, use the `:force` option.",
|
|
35
35
|
"This is useful when running _fastlane_ on your Continuous Integration server:",
|
|
36
36
|
"`_upload_to_app_store_(force: true)`",
|
|
37
|
-
"If your account is on multiple teams and you need to tell the
|
|
37
|
+
"If your account is on multiple teams and you need to tell the transporter which provider to use, you can set `:itc_provider` or `:provider_public_id`."
|
|
38
38
|
].join("\n")
|
|
39
39
|
end
|
|
40
40
|
|
|
@@ -6,9 +6,10 @@ module Fastlane
|
|
|
6
6
|
attr_reader :access_key
|
|
7
7
|
attr_reader :region
|
|
8
8
|
|
|
9
|
-
def initialize(access_key: nil, secret_access_key: nil, region: nil, s3_client: nil)
|
|
9
|
+
def initialize(access_key: nil, secret_access_key: nil, session_token: nil, region: nil, s3_client: nil)
|
|
10
10
|
@access_key = access_key
|
|
11
11
|
@secret_access_key = secret_access_key
|
|
12
|
+
@session_token = session_token
|
|
12
13
|
@region = region
|
|
13
14
|
|
|
14
15
|
@client = s3_client
|
|
@@ -59,6 +60,7 @@ module Fastlane
|
|
|
59
60
|
private
|
|
60
61
|
|
|
61
62
|
attr_reader :secret_access_key
|
|
63
|
+
attr_reader :session_token
|
|
62
64
|
|
|
63
65
|
def client
|
|
64
66
|
@client ||= Aws::S3::Client.new(
|
|
@@ -74,7 +76,8 @@ module Fastlane
|
|
|
74
76
|
|
|
75
77
|
Aws::Credentials.new(
|
|
76
78
|
access_key,
|
|
77
|
-
secret_access_key
|
|
79
|
+
secret_access_key,
|
|
80
|
+
session_token
|
|
78
81
|
)
|
|
79
82
|
end
|
|
80
83
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.
|
|
2
|
+
VERSION = '2.233.0'.freeze
|
|
3
3
|
SUMMARY = "The easiest way to build and release mobile apps.".freeze
|
|
4
4
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
|
5
5
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
|
@@ -41,6 +41,15 @@ public protocol DeliverfileProtocol: AnyObject {
|
|
|
41
41
|
/// Path to the folder containing the screenshots
|
|
42
42
|
var screenshotsPath: String? { get }
|
|
43
43
|
|
|
44
|
+
/// Path to the folder containing localized App Preview videos
|
|
45
|
+
var appPreviewsPath: String? { get }
|
|
46
|
+
|
|
47
|
+
/// Time code for the App Preview still frame written as hour:minute:second:centisecond (e.g. 00:00:00:01)
|
|
48
|
+
var previewFrameTimeCode: String { get }
|
|
49
|
+
|
|
50
|
+
/// Clear all previously uploaded App Preview videos before uploading the new ones
|
|
51
|
+
var overwritePreviewVideos: Bool { get }
|
|
52
|
+
|
|
44
53
|
/// Skip uploading an ipa or pkg to App Store Connect
|
|
45
54
|
var skipBinaryUpload: Bool { get }
|
|
46
55
|
|
|
@@ -113,6 +122,9 @@ public protocol DeliverfileProtocol: AnyObject {
|
|
|
113
122
|
/// The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
|
|
114
123
|
var itcProvider: String? { get }
|
|
115
124
|
|
|
125
|
+
/// The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
|
|
126
|
+
var providerPublicId: String? { get }
|
|
127
|
+
|
|
116
128
|
/// Run precheck before submitting to app review
|
|
117
129
|
var runPrecheckBeforeSubmit: Bool { get }
|
|
118
130
|
|
|
@@ -254,6 +266,18 @@ public extension DeliverfileProtocol {
|
|
|
254
266
|
return nil
|
|
255
267
|
}
|
|
256
268
|
|
|
269
|
+
var appPreviewsPath: String? {
|
|
270
|
+
return nil
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var previewFrameTimeCode: String {
|
|
274
|
+
return "00:00:05:00"
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
var overwritePreviewVideos: Bool {
|
|
278
|
+
return false
|
|
279
|
+
}
|
|
280
|
+
|
|
257
281
|
var skipBinaryUpload: Bool {
|
|
258
282
|
return false
|
|
259
283
|
}
|
|
@@ -350,6 +374,10 @@ public extension DeliverfileProtocol {
|
|
|
350
374
|
return nil
|
|
351
375
|
}
|
|
352
376
|
|
|
377
|
+
var providerPublicId: String? {
|
|
378
|
+
return nil
|
|
379
|
+
}
|
|
380
|
+
|
|
353
381
|
var runPrecheckBeforeSubmit: Bool {
|
|
354
382
|
return true
|
|
355
383
|
}
|
|
@@ -469,4 +497,4 @@ public extension DeliverfileProtocol {
|
|
|
469
497
|
|
|
470
498
|
// Please don't remove the lines below
|
|
471
499
|
// They are used to detect outdated files
|
|
472
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
500
|
+
// FastlaneRunnerAPIVersion [0.9.145]
|