fastlane 2.159.0 → 2.164.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -74
  3. data/cert/lib/cert/options.rb +28 -1
  4. data/cert/lib/cert/runner.rb +50 -33
  5. data/deliver/lib/deliver/app_screenshot_iterator.rb +4 -4
  6. data/deliver/lib/deliver/module.rb +2 -0
  7. data/deliver/lib/deliver/options.rb +20 -4
  8. data/deliver/lib/deliver/queue_worker.rb +14 -29
  9. data/deliver/lib/deliver/runner.rb +36 -8
  10. data/deliver/lib/deliver/upload_metadata.rb +51 -10
  11. data/deliver/lib/deliver/upload_price_tier.rb +7 -2
  12. data/deliver/lib/deliver/upload_screenshots.rb +28 -13
  13. data/fastlane/lib/fastlane/actions/actions_helper.rb +20 -1
  14. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +39 -3
  15. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +15 -1
  16. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +1 -0
  17. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +1 -0
  18. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
  19. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +2 -2
  20. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +1 -1
  21. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -2
  22. data/fastlane/lib/fastlane/actions/docs/run_tests.md +2 -2
  23. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +12 -3
  24. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -2
  25. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
  26. data/fastlane/lib/fastlane/actions/download_dsyms.rb +31 -6
  27. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +13 -2
  28. data/fastlane/lib/fastlane/actions/get_certificates.rb +1 -0
  29. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -0
  30. data/fastlane/lib/fastlane/actions/import_from_git.rb +9 -1
  31. data/fastlane/lib/fastlane/actions/is_ci.rb +1 -1
  32. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +15 -0
  33. data/fastlane/lib/fastlane/actions/register_device.rb +46 -5
  34. data/fastlane/lib/fastlane/actions/register_devices.rb +50 -16
  35. data/fastlane/lib/fastlane/actions/set_changelog.rb +31 -3
  36. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -0
  37. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +3 -2
  38. data/fastlane/lib/fastlane/fast_file.rb +74 -23
  39. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
  40. data/fastlane/lib/fastlane/version.rb +1 -1
  41. data/fastlane/swift/Deliverfile.swift +1 -1
  42. data/fastlane/swift/DeliverfileProtocol.swift +13 -5
  43. data/fastlane/swift/Fastlane.swift +170 -44
  44. data/fastlane/swift/Gymfile.swift +1 -1
  45. data/fastlane/swift/GymfileProtocol.swift +1 -1
  46. data/fastlane/swift/LaneFileProtocol.swift +28 -36
  47. data/fastlane/swift/MainProcess.swift +1 -1
  48. data/fastlane/swift/Matchfile.swift +1 -1
  49. data/fastlane/swift/MatchfileProtocol.swift +20 -4
  50. data/fastlane/swift/Precheckfile.swift +1 -1
  51. data/fastlane/swift/PrecheckfileProtocol.swift +9 -1
  52. data/fastlane/swift/Scanfile.swift +1 -1
  53. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  54. data/fastlane/swift/Screengrabfile.swift +1 -1
  55. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  56. data/fastlane/swift/Snapshotfile.swift +1 -1
  57. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  58. data/fastlane/swift/main.swift +1 -1
  59. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +6 -7
  60. data/fastlane_core/lib/fastlane_core/device_manager.rb +8 -4
  61. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  62. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +3 -3
  63. data/frameit/lib/frameit/editor.rb +1 -0
  64. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +2 -2
  65. data/match/lib/match/.commands_generator.rb.swp +0 -0
  66. data/match/lib/match/.importer.rb.swp +0 -0
  67. data/{spaceship/lib/spaceship/connect_api/models/.app.rb.swp → match/lib/match/.options.rb.swp} +0 -0
  68. data/match/lib/match/generator.rb +6 -1
  69. data/match/lib/match/importer.rb +63 -18
  70. data/match/lib/match/migrate.rb +13 -2
  71. data/match/lib/match/nuke.rb +65 -22
  72. data/match/lib/match/options.rb +33 -2
  73. data/match/lib/match/runner.rb +38 -10
  74. data/match/lib/match/spaceship_ensure.rb +27 -21
  75. data/match/lib/match/storage/google_cloud_storage.rb +20 -3
  76. data/match/lib/match/storage/s3_storage.rb +19 -3
  77. data/pilot/lib/pilot/options.rb +2 -2
  78. data/precheck/lib/precheck/options.rb +16 -0
  79. data/precheck/lib/precheck/runner.rb +20 -1
  80. data/scan/lib/scan/detect_values.rb +5 -8
  81. data/scan/lib/scan/runner.rb +2 -1
  82. data/sigh/lib/assets/resign.sh +1 -1
  83. data/sigh/lib/sigh/download_all.rb +16 -4
  84. data/sigh/lib/sigh/options.rb +21 -0
  85. data/sigh/lib/sigh/runner.rb +81 -39
  86. data/snapshot/lib/assets/SnapshotHelper.swift +4 -0
  87. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
  88. data/spaceship/README.md +1 -1
  89. data/spaceship/lib/spaceship/client.rb +9 -4
  90. data/spaceship/lib/spaceship/connect_api.rb +25 -0
  91. data/spaceship/lib/spaceship/connect_api/api_client.rb +12 -3
  92. data/spaceship/lib/spaceship/connect_api/client.rb +13 -3
  93. data/spaceship/lib/spaceship/connect_api/models/app.rb +17 -9
  94. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
  95. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +3 -1
  96. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -2
  97. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +3 -5
  98. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +3 -5
  99. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +2 -1
  100. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +42 -0
  101. data/spaceship/lib/spaceship/connect_api/models/device.rb +5 -0
  102. data/spaceship/lib/spaceship/connect_api/models/profile.rb +7 -1
  103. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +59 -0
  104. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +45 -2
  105. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  106. data/spaceship/lib/spaceship/connect_api/token.rb +6 -1
  107. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +15 -7
  108. data/spaceship/lib/spaceship/connect_api/users/users.rb +40 -0
  109. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +11 -5
  110. data/supply/lib/supply/uploader.rb +1 -1
  111. metadata +21 -19
  112. data/spaceship/lib/spaceship/connect_api/models/.app_store_version.rb.swp +0 -0
@@ -179,6 +179,7 @@ Style/MethodCallWithArgsParentheses:
179
179
  - private_lane
180
180
  - platform
181
181
  - to
182
+ - not_to
182
183
  - describe
183
184
  - it
184
185
  - be
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.159.0'.freeze
2
+ VERSION = '2.164.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.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.159.0
20
+ // Generated with fastlane 2.164.0
@@ -2,6 +2,12 @@
2
2
  // Copyright (c) 2020 FastlaneTools
3
3
 
4
4
  public protocol DeliverfileProtocol: class {
5
+ /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
6
+ var apiKeyPath: String? { get }
7
+
8
+ /// Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
9
+ var apiKey: [String: Any]? { get }
10
+
5
11
  /// Your Apple ID Username
6
12
  var username: String { get }
7
13
 
@@ -44,10 +50,10 @@ public protocol DeliverfileProtocol: class {
44
50
  /// Don't upload the metadata (e.g. title, description). This will still upload screenshots
45
51
  var skipMetadata: Bool { get }
46
52
 
47
- /// Don't update app version for submission
53
+ /// Dont create or update the app version that is being prepared for submission
48
54
  var skipAppVersionUpdate: Bool { get }
49
55
 
50
- /// Skip the HTML report file verification
56
+ /// Skip verification of HTML preview file
51
57
  var force: Bool { get }
52
58
 
53
59
  /// Clear all previously uploaded screenshots before uploading the new ones
@@ -60,7 +66,7 @@ public protocol DeliverfileProtocol: class {
60
66
  var rejectIfPossible: Bool { get }
61
67
 
62
68
  /// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
63
- var automaticRelease: Bool { get }
69
+ var automaticRelease: Bool? { get }
64
70
 
65
71
  /// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
66
72
  var autoReleaseDate: Int? { get }
@@ -184,6 +190,8 @@ public protocol DeliverfileProtocol: class {
184
190
  }
185
191
 
186
192
  public extension DeliverfileProtocol {
193
+ var apiKeyPath: String? { return nil }
194
+ var apiKey: [String: Any]? { return nil }
187
195
  var username: String { return "" }
188
196
  var appIdentifier: String? { return nil }
189
197
  var appVersion: String? { return nil }
@@ -203,7 +211,7 @@ public extension DeliverfileProtocol {
203
211
  var overwriteScreenshots: Bool { return false }
204
212
  var submitForReview: Bool { return false }
205
213
  var rejectIfPossible: Bool { return false }
206
- var automaticRelease: Bool { return false }
214
+ var automaticRelease: Bool? { return nil }
207
215
  var autoReleaseDate: Int? { return nil }
208
216
  var phasedRelease: Bool { return false }
209
217
  var resetRatings: Bool { return false }
@@ -248,4 +256,4 @@ public extension DeliverfileProtocol {
248
256
 
249
257
  // Please don't remove the lines below
250
258
  // They are used to detect outdated files
251
- // FastlaneRunnerAPIVersion [0.9.42]
259
+ // FastlaneRunnerAPIVersion [0.9.47]
@@ -98,6 +98,8 @@ public func addGitTag(tag: String? = nil,
98
98
  Returns the current build_number of either live or edit version
99
99
 
100
100
  - parameters:
101
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
102
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
101
103
  - initialBuildNumber: sets the build number to given value if no build is in current train
102
104
  - appIdentifier: The bundle identifier of your app
103
105
  - username: Your Apple ID Username
@@ -110,7 +112,9 @@ public func addGitTag(tag: String? = nil,
110
112
  Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version.
111
113
  If you need to handle more build-trains please see `latest_testflight_build_number`.
112
114
  */
113
- public func appStoreBuildNumber(initialBuildNumber: Any,
115
+ public func appStoreBuildNumber(apiKeyPath: String? = nil,
116
+ apiKey: [String: Any]? = nil,
117
+ initialBuildNumber: Any,
114
118
  appIdentifier: String,
115
119
  username: String,
116
120
  teamId: Any? = nil,
@@ -119,7 +123,9 @@ public func appStoreBuildNumber(initialBuildNumber: Any,
119
123
  platform: String = "ios",
120
124
  teamName: String? = nil)
121
125
  {
122
- let command = RubyCommand(commandID: "", methodName: "app_store_build_number", className: nil, args: [RubyCommand.Argument(name: "initial_build_number", value: initialBuildNumber),
126
+ let command = RubyCommand(commandID: "", methodName: "app_store_build_number", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
127
+ RubyCommand.Argument(name: "api_key", value: apiKey),
128
+ RubyCommand.Argument(name: "initial_build_number", value: initialBuildNumber),
123
129
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
124
130
  RubyCommand.Argument(name: "username", value: username),
125
131
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -138,6 +144,7 @@ public func appStoreBuildNumber(initialBuildNumber: Any,
138
144
  - issuerId: The issuer ID
139
145
  - keyFilepath: The path to the key p8 file
140
146
  - keyContent: The content of the key p8 file
147
+ - isKeyContentBase64: Whether :key_content is Base64 encoded or not
141
148
  - duration: The token session duration
142
149
  - inHouse: Is App Store or Enterprise (in house) team? App Store Connect API cannot not determine this on its own (yet)
143
150
 
@@ -147,6 +154,7 @@ public func appStoreConnectApiKey(keyId: String,
147
154
  issuerId: String,
148
155
  keyFilepath: String? = nil,
149
156
  keyContent: String? = nil,
157
+ isKeyContentBase64: Bool = false,
150
158
  duration: Int? = nil,
151
159
  inHouse: Bool? = nil)
152
160
  {
@@ -154,6 +162,7 @@ public func appStoreConnectApiKey(keyId: String,
154
162
  RubyCommand.Argument(name: "issuer_id", value: issuerId),
155
163
  RubyCommand.Argument(name: "key_filepath", value: keyFilepath),
156
164
  RubyCommand.Argument(name: "key_content", value: keyContent),
165
+ RubyCommand.Argument(name: "is_key_content_base64", value: isKeyContentBase64),
157
166
  RubyCommand.Argument(name: "duration", value: duration),
158
167
  RubyCommand.Argument(name: "in_house", value: inHouse)])
159
168
  _ = runner.executeCommand(command)
@@ -462,6 +471,8 @@ public func appledoc(input: Any,
462
471
  Alias for the `upload_to_app_store` action
463
472
 
464
473
  - parameters:
474
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
475
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
465
476
  - username: Your Apple ID Username
466
477
  - appIdentifier: The bundle identifier of your app
467
478
  - appVersion: The version that should be edited or created
@@ -476,8 +487,8 @@ public func appledoc(input: Any,
476
487
  - skipBinaryUpload: Skip uploading an ipa or pkg to App Store Connect
477
488
  - skipScreenshots: Don't upload the screenshots
478
489
  - skipMetadata: Don't upload the metadata (e.g. title, description). This will still upload screenshots
479
- - skipAppVersionUpdate: Don't update app version for submission
480
- - force: Skip the HTML report file verification
490
+ - skipAppVersionUpdate: Dont create or update the app version that is being prepared for submission
491
+ - force: Skip verification of HTML preview file
481
492
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
482
493
  - submitForReview: Submit the new version for Review after uploading everything
483
494
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
@@ -525,12 +536,14 @@ public func appledoc(input: Any,
525
536
 
526
537
  Using _upload_to_app_store_ after _build_app_ and _capture_screenshots_ will automatically upload the latest ipa and screenshots with no other configuration.
527
538
 
528
- If you don't want a PDF report for App Store builds, use the `:force` option.
539
+ If you don't want to verify an HTML preview for App Store builds, use the `:force` option.
529
540
  This is useful when running _fastlane_ on your Continuous Integration server:
530
541
  `_upload_to_app_store_(force: true)`
531
542
  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.
532
543
  */
533
- public func appstore(username: String,
544
+ public func appstore(apiKeyPath: String? = nil,
545
+ apiKey: [String: Any]? = nil,
546
+ username: String,
534
547
  appIdentifier: String? = nil,
535
548
  appVersion: String? = nil,
536
549
  ipa: String? = nil,
@@ -549,7 +562,7 @@ public func appstore(username: String,
549
562
  overwriteScreenshots: Bool = false,
550
563
  submitForReview: Bool = false,
551
564
  rejectIfPossible: Bool = false,
552
- automaticRelease: Bool = false,
565
+ automaticRelease: Bool? = nil,
553
566
  autoReleaseDate: Int? = nil,
554
567
  phasedRelease: Bool = false,
555
568
  resetRatings: Bool = false,
@@ -591,7 +604,9 @@ public func appstore(username: String,
591
604
  precheckIncludeInAppPurchases: Bool = true,
592
605
  app: Any)
593
606
  {
594
- let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
607
+ let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
608
+ RubyCommand.Argument(name: "api_key", value: apiKey),
609
+ RubyCommand.Argument(name: "username", value: username),
595
610
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
596
611
  RubyCommand.Argument(name: "app_version", value: appVersion),
597
612
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -1838,6 +1853,8 @@ public func carthage(command: String = "bootstrap",
1838
1853
  - type: Create specific certificate type (takes precedence over :development)
1839
1854
  - force: Create a certificate even if an existing certificate exists
1840
1855
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
1856
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
1857
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
1841
1858
  - username: Your Apple ID Username
1842
1859
  - teamId: The ID of your Developer Portal team if you're in multiple teams
1843
1860
  - teamName: The name of your Developer Portal team if you're in multiple teams
@@ -1845,6 +1862,7 @@ public func carthage(command: String = "bootstrap",
1845
1862
  - outputPath: The path to a directory in which all certificates and private keys should be stored
1846
1863
  - keychainPath: Path to a custom keychain
1847
1864
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
1865
+ - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
1848
1866
  - platform: Set the provisioning profile's platform (ios, macos)
1849
1867
 
1850
1868
  **Important**: It is recommended to use [match](https://docs.fastlane.tools/actions/match/) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
@@ -1854,6 +1872,8 @@ public func cert(development: Bool = false,
1854
1872
  type: String? = nil,
1855
1873
  force: Bool = false,
1856
1874
  generateAppleCerts: Bool = true,
1875
+ apiKeyPath: String? = nil,
1876
+ apiKey: [String: Any]? = nil,
1857
1877
  username: String,
1858
1878
  teamId: String? = nil,
1859
1879
  teamName: String? = nil,
@@ -1861,12 +1881,15 @@ public func cert(development: Bool = false,
1861
1881
  outputPath: String = ".",
1862
1882
  keychainPath: String,
1863
1883
  keychainPassword: String? = nil,
1884
+ skipSetPartitionList: Bool = false,
1864
1885
  platform: String = "ios")
1865
1886
  {
1866
1887
  let command = RubyCommand(commandID: "", methodName: "cert", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
1867
1888
  RubyCommand.Argument(name: "type", value: type),
1868
1889
  RubyCommand.Argument(name: "force", value: force),
1869
1890
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
1891
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
1892
+ RubyCommand.Argument(name: "api_key", value: apiKey),
1870
1893
  RubyCommand.Argument(name: "username", value: username),
1871
1894
  RubyCommand.Argument(name: "team_id", value: teamId),
1872
1895
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -1874,6 +1897,7 @@ public func cert(development: Bool = false,
1874
1897
  RubyCommand.Argument(name: "output_path", value: outputPath),
1875
1898
  RubyCommand.Argument(name: "keychain_path", value: keychainPath),
1876
1899
  RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
1900
+ RubyCommand.Argument(name: "skip_set_partition_list", value: skipSetPartitionList),
1877
1901
  RubyCommand.Argument(name: "platform", value: platform)])
1878
1902
  _ = runner.executeCommand(command)
1879
1903
  }
@@ -1951,6 +1975,8 @@ public func chatwork(apiToken: String,
1951
1975
  Check your app's metadata before you submit your app to review (via _precheck_)
1952
1976
 
1953
1977
  - parameters:
1978
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
1979
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
1954
1980
  - appIdentifier: The bundle identifier of your app
1955
1981
  - username: Your Apple ID Username
1956
1982
  - teamId: The ID of your App Store Connect team if you're in multiple teams
@@ -1973,7 +1999,9 @@ public func chatwork(apiToken: String,
1973
1999
 
1974
2000
  More information: https://fastlane.tools/precheck
1975
2001
  */
1976
- public func checkAppStoreMetadata(appIdentifier: String,
2002
+ public func checkAppStoreMetadata(apiKeyPath: String? = nil,
2003
+ apiKey: [String: Any]? = nil,
2004
+ appIdentifier: String,
1977
2005
  username: String,
1978
2006
  teamId: String? = nil,
1979
2007
  teamName: String? = nil,
@@ -1991,7 +2019,9 @@ public func checkAppStoreMetadata(appIdentifier: String,
1991
2019
  copyrightDate: Any? = nil,
1992
2020
  unreachableUrls: Any? = nil)
1993
2021
  {
1994
- let command = RubyCommand(commandID: "", methodName: "check_app_store_metadata", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2022
+ let command = RubyCommand(commandID: "", methodName: "check_app_store_metadata", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
2023
+ RubyCommand.Argument(name: "api_key", value: apiKey),
2024
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1995
2025
  RubyCommand.Argument(name: "username", value: username),
1996
2026
  RubyCommand.Argument(name: "team_id", value: teamId),
1997
2027
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -2562,6 +2592,8 @@ public func deleteKeychain(name: String? = nil,
2562
2592
  Alias for the `upload_to_app_store` action
2563
2593
 
2564
2594
  - parameters:
2595
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
2596
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
2565
2597
  - username: Your Apple ID Username
2566
2598
  - appIdentifier: The bundle identifier of your app
2567
2599
  - appVersion: The version that should be edited or created
@@ -2576,8 +2608,8 @@ public func deleteKeychain(name: String? = nil,
2576
2608
  - skipBinaryUpload: Skip uploading an ipa or pkg to App Store Connect
2577
2609
  - skipScreenshots: Don't upload the screenshots
2578
2610
  - skipMetadata: Don't upload the metadata (e.g. title, description). This will still upload screenshots
2579
- - skipAppVersionUpdate: Don't update app version for submission
2580
- - force: Skip the HTML report file verification
2611
+ - skipAppVersionUpdate: Dont create or update the app version that is being prepared for submission
2612
+ - force: Skip verification of HTML preview file
2581
2613
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
2582
2614
  - submitForReview: Submit the new version for Review after uploading everything
2583
2615
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
@@ -2625,12 +2657,14 @@ public func deleteKeychain(name: String? = nil,
2625
2657
 
2626
2658
  Using _upload_to_app_store_ after _build_app_ and _capture_screenshots_ will automatically upload the latest ipa and screenshots with no other configuration.
2627
2659
 
2628
- If you don't want a PDF report for App Store builds, use the `:force` option.
2660
+ If you don't want to verify an HTML preview for App Store builds, use the `:force` option.
2629
2661
  This is useful when running _fastlane_ on your Continuous Integration server:
2630
2662
  `_upload_to_app_store_(force: true)`
2631
2663
  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.
2632
2664
  */
2633
- public func deliver(username: Any = deliverfile.username,
2665
+ public func deliver(apiKeyPath: Any? = deliverfile.apiKeyPath,
2666
+ apiKey: [String: Any]? = deliverfile.apiKey,
2667
+ username: Any = deliverfile.username,
2634
2668
  appIdentifier: Any? = deliverfile.appIdentifier,
2635
2669
  appVersion: Any? = deliverfile.appVersion,
2636
2670
  ipa: Any? = deliverfile.ipa,
@@ -2649,7 +2683,7 @@ public func deliver(username: Any = deliverfile.username,
2649
2683
  overwriteScreenshots: Bool = deliverfile.overwriteScreenshots,
2650
2684
  submitForReview: Bool = deliverfile.submitForReview,
2651
2685
  rejectIfPossible: Bool = deliverfile.rejectIfPossible,
2652
- automaticRelease: Bool = deliverfile.automaticRelease,
2686
+ automaticRelease: Bool? = deliverfile.automaticRelease,
2653
2687
  autoReleaseDate: Int? = deliverfile.autoReleaseDate,
2654
2688
  phasedRelease: Bool = deliverfile.phasedRelease,
2655
2689
  resetRatings: Bool = deliverfile.resetRatings,
@@ -2691,7 +2725,9 @@ public func deliver(username: Any = deliverfile.username,
2691
2725
  precheckIncludeInAppPurchases: Bool = deliverfile.precheckIncludeInAppPurchases,
2692
2726
  app: Any = deliverfile.app)
2693
2727
  {
2694
- let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2728
+ let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
2729
+ RubyCommand.Argument(name: "api_key", value: apiKey),
2730
+ RubyCommand.Argument(name: "username", value: username),
2695
2731
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2696
2732
  RubyCommand.Argument(name: "app_version", value: appVersion),
2697
2733
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -2831,6 +2867,7 @@ public func download(url: String) {
2831
2867
  - version: The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs
2832
2868
  - buildNumber: The app build_number for dSYMs you wish to download
2833
2869
  - minVersion: The minimum app version for dSYMs you wish to download
2870
+ - afterUploadedDate: The uploaded date after which you wish to download dSYMs
2834
2871
  - outputDirectory: Where to save the download dSYMs, defaults to the current path
2835
2872
  - waitForDsymProcessing: Wait for dSYMs to process
2836
2873
  - waitTimeout: Number of seconds to wait for dSYMs to process
@@ -2854,6 +2891,7 @@ public func downloadDsyms(username: String,
2854
2891
  version: String? = nil,
2855
2892
  buildNumber: Any? = nil,
2856
2893
  minVersion: String? = nil,
2894
+ afterUploadedDate: String? = nil,
2857
2895
  outputDirectory: String? = nil,
2858
2896
  waitForDsymProcessing: Bool = false,
2859
2897
  waitTimeout: Int = 300)
@@ -2866,6 +2904,7 @@ public func downloadDsyms(username: String,
2866
2904
  RubyCommand.Argument(name: "version", value: version),
2867
2905
  RubyCommand.Argument(name: "build_number", value: buildNumber),
2868
2906
  RubyCommand.Argument(name: "min_version", value: minVersion),
2907
+ RubyCommand.Argument(name: "after_uploaded_date", value: afterUploadedDate),
2869
2908
  RubyCommand.Argument(name: "output_directory", value: outputDirectory),
2870
2909
  RubyCommand.Argument(name: "wait_for_dsym_processing", value: waitForDsymProcessing),
2871
2910
  RubyCommand.Argument(name: "wait_timeout", value: waitTimeout)])
@@ -2985,16 +3024,19 @@ public func ensureGitBranch(branch: String = "master") {
2985
3024
  - parameters:
2986
3025
  - showUncommittedChanges: The flag whether to show uncommitted changes if the repo is dirty
2987
3026
  - showDiff: The flag whether to show the git diff if the repo is dirty
3027
+ - ignored: The flag whether to ignore file the git status if the repo is dirty
2988
3028
 
2989
3029
  A sanity check to make sure you are working in a repo that is clean.
2990
3030
  Especially useful to put at the beginning of your Fastfile in the `before_all` block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work.
2991
3031
  Also needed as a prerequisite for some other actions like `reset_git_repo`.
2992
3032
  */
2993
3033
  public func ensureGitStatusClean(showUncommittedChanges: Bool = false,
2994
- showDiff: Bool = false)
3034
+ showDiff: Bool = false,
3035
+ ignored: String? = nil)
2995
3036
  {
2996
3037
  let command = RubyCommand(commandID: "", methodName: "ensure_git_status_clean", className: nil, args: [RubyCommand.Argument(name: "show_uncommitted_changes", value: showUncommittedChanges),
2997
- RubyCommand.Argument(name: "show_diff", value: showDiff)])
3038
+ RubyCommand.Argument(name: "show_diff", value: showDiff),
3039
+ RubyCommand.Argument(name: "ignored", value: ignored)])
2998
3040
  _ = runner.executeCommand(command)
2999
3041
  }
3000
3042
 
@@ -3299,6 +3341,8 @@ public func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
3299
3341
  - type: Create specific certificate type (takes precedence over :development)
3300
3342
  - force: Create a certificate even if an existing certificate exists
3301
3343
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
3344
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
3345
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
3302
3346
  - username: Your Apple ID Username
3303
3347
  - teamId: The ID of your Developer Portal team if you're in multiple teams
3304
3348
  - teamName: The name of your Developer Portal team if you're in multiple teams
@@ -3306,6 +3350,7 @@ public func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
3306
3350
  - outputPath: The path to a directory in which all certificates and private keys should be stored
3307
3351
  - keychainPath: Path to a custom keychain
3308
3352
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
3353
+ - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
3309
3354
  - platform: Set the provisioning profile's platform (ios, macos)
3310
3355
 
3311
3356
  **Important**: It is recommended to use [match](https://docs.fastlane.tools/actions/match/) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.
@@ -3315,6 +3360,8 @@ public func getCertificates(development: Bool = false,
3315
3360
  type: String? = nil,
3316
3361
  force: Bool = false,
3317
3362
  generateAppleCerts: Bool = true,
3363
+ apiKeyPath: String? = nil,
3364
+ apiKey: [String: Any]? = nil,
3318
3365
  username: String,
3319
3366
  teamId: String? = nil,
3320
3367
  teamName: String? = nil,
@@ -3322,12 +3369,15 @@ public func getCertificates(development: Bool = false,
3322
3369
  outputPath: String = ".",
3323
3370
  keychainPath: String,
3324
3371
  keychainPassword: String? = nil,
3372
+ skipSetPartitionList: Bool = false,
3325
3373
  platform: String = "ios")
3326
3374
  {
3327
3375
  let command = RubyCommand(commandID: "", methodName: "get_certificates", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
3328
3376
  RubyCommand.Argument(name: "type", value: type),
3329
3377
  RubyCommand.Argument(name: "force", value: force),
3330
3378
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
3379
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
3380
+ RubyCommand.Argument(name: "api_key", value: apiKey),
3331
3381
  RubyCommand.Argument(name: "username", value: username),
3332
3382
  RubyCommand.Argument(name: "team_id", value: teamId),
3333
3383
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -3335,6 +3385,7 @@ public func getCertificates(development: Bool = false,
3335
3385
  RubyCommand.Argument(name: "output_path", value: outputPath),
3336
3386
  RubyCommand.Argument(name: "keychain_path", value: keychainPath),
3337
3387
  RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
3388
+ RubyCommand.Argument(name: "skip_set_partition_list", value: skipSetPartitionList),
3338
3389
  RubyCommand.Argument(name: "platform", value: platform)])
3339
3390
  _ = runner.executeCommand(command)
3340
3391
  }
@@ -3471,6 +3522,8 @@ public func getManagedPlayStorePublishingRights(jsonKey: String? = nil,
3471
3522
  - skipInstall: By default, the certificate will be added to your local machine. Setting this flag will skip this action
3472
3523
  - force: Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles
3473
3524
  - appIdentifier: The bundle identifier of your app
3525
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
3526
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
3474
3527
  - username: Your Apple ID Username
3475
3528
  - teamId: The ID of your Developer Portal team if you're in multiple teams
3476
3529
  - teamName: The name of your Developer Portal team if you're in multiple teams
@@ -3497,6 +3550,8 @@ public func getProvisioningProfile(adhoc: Bool = false,
3497
3550
  skipInstall: Bool = false,
3498
3551
  force: Bool = false,
3499
3552
  appIdentifier: String,
3553
+ apiKeyPath: String? = nil,
3554
+ apiKey: [String: Any]? = nil,
3500
3555
  username: String,
3501
3556
  teamId: String? = nil,
3502
3557
  teamName: String? = nil,
@@ -3519,6 +3574,8 @@ public func getProvisioningProfile(adhoc: Bool = false,
3519
3574
  RubyCommand.Argument(name: "skip_install", value: skipInstall),
3520
3575
  RubyCommand.Argument(name: "force", value: force),
3521
3576
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
3577
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
3578
+ RubyCommand.Argument(name: "api_key", value: apiKey),
3522
3579
  RubyCommand.Argument(name: "username", value: username),
3523
3580
  RubyCommand.Argument(name: "team_id", value: teamId),
3524
3581
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -4547,6 +4604,8 @@ public func jira(url: String,
4547
4604
  Fetches most recent build number from TestFlight
4548
4605
 
4549
4606
  - parameters:
4607
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
4608
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
4550
4609
  - live: Query the live version (ready-for-sale)
4551
4610
  - appIdentifier: The bundle identifier of your app
4552
4611
  - username: Your Apple ID Username
@@ -4561,7 +4620,9 @@ public func jira(url: String,
4561
4620
  Provides a way to have `increment_build_number` be based on the latest build you uploaded to iTC.
4562
4621
  Fetches the most recent build number from TestFlight based on the version number. Provides a way to have `increment_build_number` be based on the latest build you uploaded to iTC.
4563
4622
  */
4564
- @discardableResult public func latestTestflightBuildNumber(live: Bool = false,
4623
+ @discardableResult public func latestTestflightBuildNumber(apiKeyPath: String? = nil,
4624
+ apiKey: [String: Any]? = nil,
4625
+ live: Bool = false,
4565
4626
  appIdentifier: String,
4566
4627
  username: String,
4567
4628
  version: String? = nil,
@@ -4570,7 +4631,9 @@ public func jira(url: String,
4570
4631
  teamId: Any? = nil,
4571
4632
  teamName: String? = nil) -> Int
4572
4633
  {
4573
- let command = RubyCommand(commandID: "", methodName: "latest_testflight_build_number", className: nil, args: [RubyCommand.Argument(name: "live", value: live),
4634
+ let command = RubyCommand(commandID: "", methodName: "latest_testflight_build_number", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
4635
+ RubyCommand.Argument(name: "api_key", value: apiKey),
4636
+ RubyCommand.Argument(name: "live", value: live),
4574
4637
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
4575
4638
  RubyCommand.Argument(name: "username", value: username),
4576
4639
  RubyCommand.Argument(name: "version", value: version),
@@ -4686,6 +4749,8 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
4686
4749
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
4687
4750
  - skipProvisioningProfiles: Skip syncing provisioning profiles
4688
4751
  - appIdentifier: The bundle identifier(s) of your app (comma-separated)
4752
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
4753
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
4689
4754
  - username: Your Apple ID Username
4690
4755
  - teamId: The ID of your Developer Portal team if you're in multiple teams
4691
4756
  - teamName: The name of your Developer Portal team if you're in multiple teams
@@ -4697,7 +4762,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
4697
4762
  - shallowClone: Make a shallow clone of the repository (truncate the history to 1 revision)
4698
4763
  - cloneBranchDirectly: Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail
4699
4764
  - gitBasicAuthorization: Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64
4700
- - gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure Devops repository), usually a string in Base64
4765
+ - gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64
4701
4766
  - gitPrivateKey: Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof
4702
4767
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
4703
4768
  - googleCloudKeysFile: Path to the gc_keys.json file
@@ -4718,7 +4783,9 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
4718
4783
  - templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
4719
4784
  - profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
4720
4785
  - failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
4786
+ - skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action
4721
4787
  - outputPath: Path in which to export certificates, key and profile
4788
+ - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
4722
4789
  - verbose: Print out extra information and all commands
4723
4790
 
4724
4791
  More information: https://docs.fastlane.tools/actions/match/
@@ -4729,7 +4796,9 @@ public func match(type: Any = matchfile.type,
4729
4796
  generateAppleCerts: Bool = matchfile.generateAppleCerts,
4730
4797
  skipProvisioningProfiles: Bool = matchfile.skipProvisioningProfiles,
4731
4798
  appIdentifier: [String] = matchfile.appIdentifier,
4732
- username: Any = matchfile.username,
4799
+ apiKeyPath: Any? = matchfile.apiKeyPath,
4800
+ apiKey: [String: Any]? = matchfile.apiKey,
4801
+ username: Any? = matchfile.username,
4733
4802
  teamId: Any? = matchfile.teamId,
4734
4803
  teamName: Any? = matchfile.teamName,
4735
4804
  storageMode: Any = matchfile.storageMode,
@@ -4761,7 +4830,9 @@ public func match(type: Any = matchfile.type,
4761
4830
  templateName: Any? = matchfile.templateName,
4762
4831
  profileName: Any? = matchfile.profileName,
4763
4832
  failOnNameTaken: Bool = matchfile.failOnNameTaken,
4833
+ skipCertificateMatching: Bool = matchfile.skipCertificateMatching,
4764
4834
  outputPath: Any? = matchfile.outputPath,
4835
+ skipSetPartitionList: Bool = matchfile.skipSetPartitionList,
4765
4836
  verbose: Bool = matchfile.verbose)
4766
4837
  {
4767
4838
  let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
@@ -4770,6 +4841,8 @@ public func match(type: Any = matchfile.type,
4770
4841
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
4771
4842
  RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
4772
4843
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
4844
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
4845
+ RubyCommand.Argument(name: "api_key", value: apiKey),
4773
4846
  RubyCommand.Argument(name: "username", value: username),
4774
4847
  RubyCommand.Argument(name: "team_id", value: teamId),
4775
4848
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -4802,7 +4875,9 @@ public func match(type: Any = matchfile.type,
4802
4875
  RubyCommand.Argument(name: "template_name", value: templateName),
4803
4876
  RubyCommand.Argument(name: "profile_name", value: profileName),
4804
4877
  RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
4878
+ RubyCommand.Argument(name: "skip_certificate_matching", value: skipCertificateMatching),
4805
4879
  RubyCommand.Argument(name: "output_path", value: outputPath),
4880
+ RubyCommand.Argument(name: "skip_set_partition_list", value: skipSetPartitionList),
4806
4881
  RubyCommand.Argument(name: "verbose", value: verbose)])
4807
4882
  _ = runner.executeCommand(command)
4808
4883
  }
@@ -5184,8 +5259,8 @@ public func pem(development: Bool = false,
5184
5259
  Alias for the `upload_to_testflight` action
5185
5260
 
5186
5261
  - parameters:
5187
- - apiKeyPath: Path to your App Store Connect API key JSON file
5188
- - apiKey: Path to your App Store Connect API key JSON file
5262
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
5263
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
5189
5264
  - username: Your Apple ID Username
5190
5265
  - appIdentifier: The bundle identifier of the app to upload or manage testers (optional)
5191
5266
  - appPlatform: The platform to use (optional)
@@ -5472,6 +5547,8 @@ public func podioItem(clientId: String,
5472
5547
  Alias for the `check_app_store_metadata` action
5473
5548
 
5474
5549
  - parameters:
5550
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
5551
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
5475
5552
  - appIdentifier: The bundle identifier of your app
5476
5553
  - username: Your Apple ID Username
5477
5554
  - teamId: The ID of your App Store Connect team if you're in multiple teams
@@ -5485,7 +5562,9 @@ public func podioItem(clientId: String,
5485
5562
 
5486
5563
  More information: https://fastlane.tools/precheck
5487
5564
  */
5488
- public func precheck(appIdentifier: Any = precheckfile.appIdentifier,
5565
+ public func precheck(apiKeyPath: Any? = precheckfile.apiKeyPath,
5566
+ apiKey: [String: Any]? = precheckfile.apiKey,
5567
+ appIdentifier: Any = precheckfile.appIdentifier,
5489
5568
  username: Any = precheckfile.username,
5490
5569
  teamId: Any? = precheckfile.teamId,
5491
5570
  teamName: Any? = precheckfile.teamName,
@@ -5494,7 +5573,9 @@ public func precheck(appIdentifier: Any = precheckfile.appIdentifier,
5494
5573
  includeInAppPurchases: Bool = precheckfile.includeInAppPurchases,
5495
5574
  freeStuffInIap: Any? = precheckfile.freeStuffInIap)
5496
5575
  {
5497
- let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5576
+ let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
5577
+ RubyCommand.Argument(name: "api_key", value: apiKey),
5578
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5498
5579
  RubyCommand.Argument(name: "username", value: username),
5499
5580
  RubyCommand.Argument(name: "team_id", value: teamId),
5500
5581
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -5709,7 +5790,10 @@ public func recreateSchemes(project: String) {
5709
5790
 
5710
5791
  - parameters:
5711
5792
  - name: Provide the name of the device to register as
5793
+ - platform: Provide the platform of the device to register as (ios, mac)
5712
5794
  - udid: Provide the UDID of the device to register as
5795
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
5796
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
5713
5797
  - teamId: The ID of your Developer Portal team if you're in multiple teams
5714
5798
  - teamName: The name of your Developer Portal team if you're in multiple teams
5715
5799
  - username: Optional: Your Apple ID
@@ -5719,13 +5803,19 @@ public func recreateSchemes(project: String) {
5719
5803
  The action will connect to the Apple Developer Portal using the username you specified in your `Appfile` with `apple_id`, but you can override it using the `:username` option.
5720
5804
  */
5721
5805
  @discardableResult public func registerDevice(name: String,
5806
+ platform: String = "ios",
5722
5807
  udid: String,
5808
+ apiKeyPath: String? = nil,
5809
+ apiKey: [String: Any]? = nil,
5723
5810
  teamId: String? = nil,
5724
5811
  teamName: String? = nil,
5725
- username: String) -> String
5812
+ username: String? = nil) -> String
5726
5813
  {
5727
5814
  let command = RubyCommand(commandID: "", methodName: "register_device", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
5815
+ RubyCommand.Argument(name: "platform", value: platform),
5728
5816
  RubyCommand.Argument(name: "udid", value: udid),
5817
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
5818
+ RubyCommand.Argument(name: "api_key", value: apiKey),
5729
5819
  RubyCommand.Argument(name: "team_id", value: teamId),
5730
5820
  RubyCommand.Argument(name: "team_name", value: teamName),
5731
5821
  RubyCommand.Argument(name: "username", value: username)])
@@ -5738,6 +5828,8 @@ public func recreateSchemes(project: String) {
5738
5828
  - parameters:
5739
5829
  - devices: A hash of devices, with the name as key and the UDID as value
5740
5830
  - devicesFile: Provide a path to a file with the devices to register. For the format of the file see the examples
5831
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
5832
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
5741
5833
  - teamId: The ID of your Developer Portal team if you're in multiple teams
5742
5834
  - teamName: The name of your Developer Portal team if you're in multiple teams
5743
5835
  - username: Optional: Your Apple ID
@@ -5749,6 +5841,8 @@ public func recreateSchemes(project: String) {
5749
5841
  */
5750
5842
  public func registerDevices(devices: [String: Any]? = nil,
5751
5843
  devicesFile: String? = nil,
5844
+ apiKeyPath: String? = nil,
5845
+ apiKey: [String: Any]? = nil,
5752
5846
  teamId: String? = nil,
5753
5847
  teamName: String? = nil,
5754
5848
  username: String,
@@ -5756,6 +5850,8 @@ public func registerDevices(devices: [String: Any]? = nil,
5756
5850
  {
5757
5851
  let command = RubyCommand(commandID: "", methodName: "register_devices", className: nil, args: [RubyCommand.Argument(name: "devices", value: devices),
5758
5852
  RubyCommand.Argument(name: "devices_file", value: devicesFile),
5853
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
5854
+ RubyCommand.Argument(name: "api_key", value: apiKey),
5759
5855
  RubyCommand.Argument(name: "team_id", value: teamId),
5760
5856
  RubyCommand.Argument(name: "team_name", value: teamName),
5761
5857
  RubyCommand.Argument(name: "username", value: username),
@@ -6519,6 +6615,8 @@ public func setBuildNumberRepository(useHgRevisionNumber: Bool = false,
6519
6615
  Set the changelog for all languages on App Store Connect
6520
6616
 
6521
6617
  - parameters:
6618
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
6619
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
6522
6620
  - appIdentifier: The bundle identifier of your app
6523
6621
  - username: Your Apple ID Username
6524
6622
  - version: The version number to create/update
@@ -6531,15 +6629,19 @@ public func setBuildNumberRepository(useHgRevisionNumber: Bool = false,
6531
6629
  You can store the changelog in `./changelog.txt` and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same "What's new"-text for all languages.
6532
6630
  Defining the version is optional. _fastlane_ will try to automatically detect it if you don't provide one.
6533
6631
  */
6534
- public func setChangelog(appIdentifier: String,
6535
- username: String,
6632
+ public func setChangelog(apiKeyPath: String? = nil,
6633
+ apiKey: [String: Any]? = nil,
6634
+ appIdentifier: String,
6635
+ username: String? = nil,
6536
6636
  version: String? = nil,
6537
6637
  changelog: String? = nil,
6538
6638
  teamId: Any? = nil,
6539
6639
  teamName: String? = nil,
6540
6640
  platform: String = "ios")
6541
6641
  {
6542
- let command = RubyCommand(commandID: "", methodName: "set_changelog", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
6642
+ let command = RubyCommand(commandID: "", methodName: "set_changelog", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
6643
+ RubyCommand.Argument(name: "api_key", value: apiKey),
6644
+ RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
6543
6645
  RubyCommand.Argument(name: "username", value: username),
6544
6646
  RubyCommand.Argument(name: "version", value: version),
6545
6647
  RubyCommand.Argument(name: "changelog", value: changelog),
@@ -6781,6 +6883,8 @@ public func setupTravis(force: Bool = false) {
6781
6883
  - skipInstall: By default, the certificate will be added to your local machine. Setting this flag will skip this action
6782
6884
  - force: Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles
6783
6885
  - appIdentifier: The bundle identifier of your app
6886
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
6887
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
6784
6888
  - username: Your Apple ID Username
6785
6889
  - teamId: The ID of your Developer Portal team if you're in multiple teams
6786
6890
  - teamName: The name of your Developer Portal team if you're in multiple teams
@@ -6807,6 +6911,8 @@ public func sigh(adhoc: Bool = false,
6807
6911
  skipInstall: Bool = false,
6808
6912
  force: Bool = false,
6809
6913
  appIdentifier: String,
6914
+ apiKeyPath: String? = nil,
6915
+ apiKey: [String: Any]? = nil,
6810
6916
  username: String,
6811
6917
  teamId: String? = nil,
6812
6918
  teamName: String? = nil,
@@ -6829,6 +6935,8 @@ public func sigh(adhoc: Bool = false,
6829
6935
  RubyCommand.Argument(name: "skip_install", value: skipInstall),
6830
6936
  RubyCommand.Argument(name: "force", value: force),
6831
6937
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
6938
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
6939
+ RubyCommand.Argument(name: "api_key", value: apiKey),
6832
6940
  RubyCommand.Argument(name: "username", value: username),
6833
6941
  RubyCommand.Argument(name: "team_id", value: teamId),
6834
6942
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -7571,6 +7679,8 @@ public func swiftlint(mode: Any = "lint",
7571
7679
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
7572
7680
  - skipProvisioningProfiles: Skip syncing provisioning profiles
7573
7681
  - appIdentifier: The bundle identifier(s) of your app (comma-separated)
7682
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
7683
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
7574
7684
  - username: Your Apple ID Username
7575
7685
  - teamId: The ID of your Developer Portal team if you're in multiple teams
7576
7686
  - teamName: The name of your Developer Portal team if you're in multiple teams
@@ -7582,7 +7692,7 @@ public func swiftlint(mode: Any = "lint",
7582
7692
  - shallowClone: Make a shallow clone of the repository (truncate the history to 1 revision)
7583
7693
  - cloneBranchDirectly: Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail
7584
7694
  - gitBasicAuthorization: Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64
7585
- - gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure Devops repository), usually a string in Base64
7695
+ - gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64
7586
7696
  - gitPrivateKey: Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof
7587
7697
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
7588
7698
  - googleCloudKeysFile: Path to the gc_keys.json file
@@ -7603,7 +7713,9 @@ public func swiftlint(mode: Any = "lint",
7603
7713
  - templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
7604
7714
  - profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
7605
7715
  - failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
7716
+ - skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action
7606
7717
  - outputPath: Path in which to export certificates, key and profile
7718
+ - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing
7607
7719
  - verbose: Print out extra information and all commands
7608
7720
 
7609
7721
  More information: https://docs.fastlane.tools/actions/match/
@@ -7614,7 +7726,9 @@ public func syncCodeSigning(type: String = "development",
7614
7726
  generateAppleCerts: Bool = true,
7615
7727
  skipProvisioningProfiles: Bool = false,
7616
7728
  appIdentifier: [String],
7617
- username: String,
7729
+ apiKeyPath: String? = nil,
7730
+ apiKey: [String: Any]? = nil,
7731
+ username: String? = nil,
7618
7732
  teamId: String? = nil,
7619
7733
  teamName: String? = nil,
7620
7734
  storageMode: String = "git",
@@ -7646,7 +7760,9 @@ public func syncCodeSigning(type: String = "development",
7646
7760
  templateName: String? = nil,
7647
7761
  profileName: String? = nil,
7648
7762
  failOnNameTaken: Bool = false,
7763
+ skipCertificateMatching: Bool = false,
7649
7764
  outputPath: String? = nil,
7765
+ skipSetPartitionList: Bool = false,
7650
7766
  verbose: Bool = false)
7651
7767
  {
7652
7768
  let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
@@ -7655,6 +7771,8 @@ public func syncCodeSigning(type: String = "development",
7655
7771
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
7656
7772
  RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
7657
7773
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
7774
+ RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
7775
+ RubyCommand.Argument(name: "api_key", value: apiKey),
7658
7776
  RubyCommand.Argument(name: "username", value: username),
7659
7777
  RubyCommand.Argument(name: "team_id", value: teamId),
7660
7778
  RubyCommand.Argument(name: "team_name", value: teamName),
@@ -7687,7 +7805,9 @@ public func syncCodeSigning(type: String = "development",
7687
7805
  RubyCommand.Argument(name: "template_name", value: templateName),
7688
7806
  RubyCommand.Argument(name: "profile_name", value: profileName),
7689
7807
  RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
7808
+ RubyCommand.Argument(name: "skip_certificate_matching", value: skipCertificateMatching),
7690
7809
  RubyCommand.Argument(name: "output_path", value: outputPath),
7810
+ RubyCommand.Argument(name: "skip_set_partition_list", value: skipSetPartitionList),
7691
7811
  RubyCommand.Argument(name: "verbose", value: verbose)])
7692
7812
  _ = runner.executeCommand(command)
7693
7813
  }
@@ -7762,8 +7882,8 @@ public func testfairy(apiKey: String,
7762
7882
  Alias for the `upload_to_testflight` action
7763
7883
 
7764
7884
  - parameters:
7765
- - apiKeyPath: Path to your App Store Connect API key JSON file
7766
- - apiKey: Path to your App Store Connect API key JSON file
7885
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
7886
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
7767
7887
  - username: Your Apple ID Username
7768
7888
  - appIdentifier: The bundle identifier of the app to upload or manage testers (optional)
7769
7889
  - appPlatform: The platform to use (optional)
@@ -8356,6 +8476,8 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
8356
8476
  Upload metadata and binary to App Store Connect (via _deliver_)
8357
8477
 
8358
8478
  - parameters:
8479
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
8480
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
8359
8481
  - username: Your Apple ID Username
8360
8482
  - appIdentifier: The bundle identifier of your app
8361
8483
  - appVersion: The version that should be edited or created
@@ -8370,8 +8492,8 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
8370
8492
  - skipBinaryUpload: Skip uploading an ipa or pkg to App Store Connect
8371
8493
  - skipScreenshots: Don't upload the screenshots
8372
8494
  - skipMetadata: Don't upload the metadata (e.g. title, description). This will still upload screenshots
8373
- - skipAppVersionUpdate: Don't update app version for submission
8374
- - force: Skip the HTML report file verification
8495
+ - skipAppVersionUpdate: Dont create or update the app version that is being prepared for submission
8496
+ - force: Skip verification of HTML preview file
8375
8497
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
8376
8498
  - submitForReview: Submit the new version for Review after uploading everything
8377
8499
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
@@ -8419,12 +8541,14 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
8419
8541
 
8420
8542
  Using _upload_to_app_store_ after _build_app_ and _capture_screenshots_ will automatically upload the latest ipa and screenshots with no other configuration.
8421
8543
 
8422
- If you don't want a PDF report for App Store builds, use the `:force` option.
8544
+ If you don't want to verify an HTML preview for App Store builds, use the `:force` option.
8423
8545
  This is useful when running _fastlane_ on your Continuous Integration server:
8424
8546
  `_upload_to_app_store_(force: true)`
8425
8547
  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.
8426
8548
  */
8427
- public func uploadToAppStore(username: String,
8549
+ public func uploadToAppStore(apiKeyPath: String? = nil,
8550
+ apiKey: [String: Any]? = nil,
8551
+ username: String,
8428
8552
  appIdentifier: String? = nil,
8429
8553
  appVersion: String? = nil,
8430
8554
  ipa: String? = nil,
@@ -8443,7 +8567,7 @@ public func uploadToAppStore(username: String,
8443
8567
  overwriteScreenshots: Bool = false,
8444
8568
  submitForReview: Bool = false,
8445
8569
  rejectIfPossible: Bool = false,
8446
- automaticRelease: Bool = false,
8570
+ automaticRelease: Bool? = nil,
8447
8571
  autoReleaseDate: Int? = nil,
8448
8572
  phasedRelease: Bool = false,
8449
8573
  resetRatings: Bool = false,
@@ -8485,7 +8609,9 @@ public func uploadToAppStore(username: String,
8485
8609
  precheckIncludeInAppPurchases: Bool = true,
8486
8610
  app: Any)
8487
8611
  {
8488
- let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
8612
+ let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "api_key_path", value: apiKeyPath),
8613
+ RubyCommand.Argument(name: "api_key", value: apiKey),
8614
+ RubyCommand.Argument(name: "username", value: username),
8489
8615
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
8490
8616
  RubyCommand.Argument(name: "app_version", value: appVersion),
8491
8617
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -8711,8 +8837,8 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
8711
8837
  Upload new binary to App Store Connect for TestFlight beta testing (via _pilot_)
8712
8838
 
8713
8839
  - parameters:
8714
- - apiKeyPath: Path to your App Store Connect API key JSON file
8715
- - apiKey: Path to your App Store Connect API key JSON file
8840
+ - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
8841
+ - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
8716
8842
  - username: Your Apple ID Username
8717
8843
  - appIdentifier: The bundle identifier of the app to upload or manage testers (optional)
8718
8844
  - appPlatform: The platform to use (optional)
@@ -9127,7 +9253,7 @@ public func xcov(workspace: String? = nil,
9127
9253
  coverallsServiceJobId: String? = nil,
9128
9254
  coverallsRepoToken: String? = nil,
9129
9255
  xcconfig: String? = nil,
9130
- ideFoundationPath: String = "/Applications/Xcode-11.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9256
+ ideFoundationPath: String = "/Applications/Xcode-11.7.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9131
9257
  legacySupport: Bool = false)
9132
9258
  {
9133
9259
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -9273,4 +9399,4 @@ public let snapshotfile = Snapshotfile()
9273
9399
 
9274
9400
  // Please don't remove the lines below
9275
9401
  // They are used to detect outdated files
9276
- // FastlaneRunnerAPIVersion [0.9.95]
9402
+ // FastlaneRunnerAPIVersion [0.9.100]