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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +98 -98
  3. data/credentials_manager/lib/credentials_manager/appfile_config.rb +4 -0
  4. data/deliver/lib/deliver/detect_values.rb +2 -0
  5. data/deliver/lib/deliver/options.rb +23 -0
  6. data/deliver/lib/deliver/runner.rb +17 -12
  7. data/deliver/lib/deliver/sync_app_previews.rb +204 -0
  8. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +5 -1
  9. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +20 -4
  10. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -0
  11. data/fastlane/lib/fastlane/actions/resign.rb +13 -2
  12. data/fastlane/lib/fastlane/actions/swiftlint.rb +8 -1
  13. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -1
  14. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +5 -2
  15. data/fastlane/lib/fastlane/version.rb +1 -1
  16. data/fastlane/swift/Deliverfile.swift +1 -1
  17. data/fastlane/swift/DeliverfileProtocol.swift +29 -1
  18. data/fastlane/swift/Fastlane.swift +105 -9
  19. data/fastlane/swift/Gymfile.swift +1 -1
  20. data/fastlane/swift/GymfileProtocol.swift +8 -1
  21. data/fastlane/swift/Matchfile.swift +1 -1
  22. data/fastlane/swift/MatchfileProtocol.swift +8 -1
  23. data/fastlane/swift/Precheckfile.swift +1 -1
  24. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  25. data/fastlane/swift/Scanfile.swift +1 -1
  26. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  27. data/fastlane/swift/Screengrabfile.swift +1 -1
  28. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  29. data/fastlane/swift/Snapshotfile.swift +1 -1
  30. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  31. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +48 -17
  32. data/fastlane_core/lib/fastlane_core/video_utils.rb +202 -0
  33. data/frameit/lib/frameit/device_types.rb +2 -2
  34. data/gym/lib/gym/generators/build_command_generator.rb +2 -1
  35. data/gym/lib/gym/options.rb +5 -0
  36. data/match/lib/match/generator.rb +3 -1
  37. data/match/lib/match/options.rb +5 -0
  38. data/match/lib/match/runner.rb +12 -7
  39. data/match/lib/match/storage/s3_storage.rb +4 -1
  40. data/match/lib/match/storage.rb +1 -0
  41. data/pilot/lib/pilot/build_manager.rb +4 -12
  42. data/pilot/lib/pilot/options.rb +4 -0
  43. data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/README.md +54 -0
  44. data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +2 -1
  45. data/scan/lib/scan/detect_values.rb +11 -3
  46. data/sigh/lib/assets/resign.sh +17 -5
  47. data/sigh/lib/sigh/commands_generator.rb +1 -0
  48. data/sigh/lib/sigh/manager.rb +6 -6
  49. data/sigh/lib/sigh/resign.rb +9 -6
  50. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +54 -17
  51. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +1 -2
  52. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +2 -2
  53. data/trainer/lib/trainer/legacy_xcresult.rb +27 -20
  54. data/trainer/lib/trainer/xcresult/test_suite.rb +4 -1
  55. 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` and `./fastlane/screenshots` folders (if you don't use [_fastlane_](https://fastlane.tools) it's `./metadata` instead)
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
  ![/img/actions/deliver_metadata.png](/img/actions/deliver_metadata.png)
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
  ![/img/actions/deliver_screenshots.png](/img/actions/deliver_screenshots.png)
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
+ ![/img/actions/deliver_app-previews.png](/img/actions/deliver_app-previews.png)
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 `iTMSTransporter` which 'provider' to use, you can set the `:itc_provider` option to pass this info."
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.232.2'.freeze
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
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.232.2
20
+ // Generated with fastlane 2.233.0
@@ -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.144]
500
+ // FastlaneRunnerAPIVersion [0.9.145]