fastlane 2.152.0 → 2.155.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +76 -76
  3. data/deliver/lib/deliver/app_screenshot.rb +1 -1
  4. data/deliver/lib/deliver/commands_generator.rb +7 -4
  5. data/deliver/lib/deliver/detect_values.rb +9 -3
  6. data/deliver/lib/deliver/download_screenshots.rb +1 -3
  7. data/deliver/lib/deliver/html_generator.rb +8 -1
  8. data/deliver/lib/deliver/runner.rb +5 -10
  9. data/deliver/lib/deliver/setup.rb +92 -3
  10. data/deliver/lib/deliver/submit_for_review.rb +1 -3
  11. data/deliver/lib/deliver/upload_metadata.rb +46 -26
  12. data/deliver/lib/deliver/upload_price_tier.rb +1 -3
  13. data/deliver/lib/deliver/upload_screenshots.rb +75 -44
  14. data/{deliver/lib/deliver/.commands_generator.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
  15. data/{frameit/lib/frameit/.editor.rb.swp → fastlane/lib/fastlane/actions/.git_commit.rb.swp} +0 -0
  16. data/fastlane/lib/fastlane/actions/carthage.rb +7 -0
  17. data/fastlane/lib/fastlane/actions/create_keychain.rb +5 -1
  18. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -1
  19. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +21 -2
  20. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -4
  21. data/fastlane/lib/fastlane/actions/download_dsyms.rb +4 -2
  22. data/fastlane/lib/fastlane/actions/erb.rb +10 -2
  23. data/fastlane/lib/fastlane/actions/git_pull.rb +13 -2
  24. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +5 -0
  25. data/fastlane/lib/fastlane/runner.rb +3 -1
  26. data/fastlane/lib/fastlane/version.rb +1 -1
  27. data/fastlane/swift/Deliverfile.swift +1 -1
  28. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  29. data/fastlane/swift/Fastlane.swift +407 -189
  30. data/fastlane/swift/Gymfile.swift +1 -1
  31. data/fastlane/swift/GymfileProtocol.swift +1 -1
  32. data/fastlane/swift/Matchfile.swift +1 -1
  33. data/fastlane/swift/MatchfileProtocol.swift +10 -2
  34. data/fastlane/swift/Precheckfile.swift +1 -1
  35. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  36. data/fastlane/swift/Scanfile.swift +1 -1
  37. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  38. data/fastlane/swift/Screengrabfile.swift +1 -1
  39. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  40. data/fastlane/swift/Snapshotfile.swift +1 -1
  41. data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
  42. data/fastlane_core/lib/fastlane_core/device_manager.rb +25 -6
  43. data/frameit/lib/frameit/editor.rb +11 -6
  44. data/gym/lib/gym/detect_values.rb +6 -3
  45. data/gym/lib/gym/module.rb +30 -0
  46. data/gym/lib/gym/runner.rb +23 -18
  47. data/match/lib/match/generator.rb +6 -0
  48. data/match/lib/match/options.rb +16 -4
  49. data/match/lib/match/runner.rb +13 -5
  50. data/match/lib/match/spaceship_ensure.rb +7 -9
  51. data/match/lib/match/storage/git_storage.rb +16 -2
  52. data/match/lib/match/storage/google_cloud_storage.rb +1 -1
  53. data/pilot/lib/pilot/build_manager.rb +9 -0
  54. data/pilot/lib/pilot/options.rb +1 -1
  55. data/scan/lib/scan/runner.rb +19 -6
  56. data/sigh/lib/sigh/.runner.rb.swp +0 -0
  57. data/sigh/lib/sigh/download_all.rb +42 -27
  58. data/sigh/lib/sigh/module.rb +26 -0
  59. data/sigh/lib/sigh/options.rb +2 -2
  60. data/sigh/lib/sigh/runner.rb +96 -35
  61. data/snapshot/lib/snapshot/options.rb +10 -0
  62. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  63. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +5 -0
  64. data/snapshot/lib/snapshot/test_command_generator.rb +3 -2
  65. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +4 -1
  66. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  67. data/spaceship/lib/spaceship/connect_api/client.rb +5 -3
  68. data/spaceship/lib/spaceship/connect_api/model.rb +15 -1
  69. data/spaceship/lib/spaceship/connect_api/models/.device.rb.swp +0 -0
  70. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -0
  71. data/spaceship/lib/spaceship/connect_api/models/app.rb +61 -3
  72. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +1 -0
  73. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +1 -0
  74. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +44 -5
  75. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +1 -0
  76. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +12 -0
  77. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +1 -0
  78. data/spaceship/lib/spaceship/connect_api/models/app_store_version_release_request.rb +12 -0
  79. data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -0
  80. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +17 -5
  81. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +41 -7
  82. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +1 -0
  83. data/spaceship/lib/spaceship/connect_api/models/profile.rb +31 -1
  84. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +46 -4
  85. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +41 -0
  86. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +32 -1
  87. data/supply/lib/supply/client.rb +2 -1
  88. data/supply/lib/supply/options.rb +8 -1
  89. metadata +33 -58
  90. data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
  91. data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
@@ -3,7 +3,10 @@ module Fastlane
3
3
  class ErbAction < Action
4
4
  def self.run(params)
5
5
  template = File.read(params[:template])
6
- result = ERB.new(template).result(OpenStruct.new(params[:placeholders]).instance_eval { binding })
6
+ trim_mode = params[:trim_mode]
7
+
8
+ result = Fastlane::ErbTemplateHelper.render(template, params[:placeholders], trim_mode)
9
+
7
10
  File.open(params[:destination], 'w') { |file| file.write(result) } if params[:destination]
8
11
  UI.message("Successfully parsed template: '#{params[:template]}' and rendered output to: #{params[:destination]}") if params[:destination]
9
12
  result
@@ -45,7 +48,12 @@ module Fastlane
45
48
  description: "Placeholders given as a hash",
46
49
  default_value: {},
47
50
  is_string: false,
48
- type: Hash)
51
+ type: Hash),
52
+ FastlaneCore::ConfigItem.new(key: :trim_mode,
53
+ short_option: "-t",
54
+ env_name: "FL_ERB_TRIM_MODE",
55
+ description: "Trim mode applied to the ERB",
56
+ optional: true)
49
57
 
50
58
  ]
51
59
  end
@@ -5,7 +5,9 @@ module Fastlane
5
5
  commands = []
6
6
 
7
7
  unless params[:only_tags]
8
- commands += ["git pull &&"]
8
+ command = "git pull"
9
+ command << " --rebase" if params[:rebase]
10
+ commands += ["#{command} &&"]
9
11
  end
10
12
 
11
13
  commands += ["git fetch --tags"]
@@ -26,6 +28,14 @@ module Fastlane
26
28
  default_value: false,
27
29
  verify_block: proc do |value|
28
30
  UI.user_error!("Please pass a valid value for only_tags. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
31
+ end),
32
+ FastlaneCore::ConfigItem.new(key: :rebase,
33
+ description: "Rebase on top of the remote branch instead of merge",
34
+ is_string: false,
35
+ optional: true,
36
+ default_value: false,
37
+ verify_block: proc do |value|
38
+ UI.user_error!("Please pass a valid value for rebase. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
29
39
  end)
30
40
  ]
31
41
  end
@@ -41,7 +51,8 @@ module Fastlane
41
51
  def self.example_code
42
52
  [
43
53
  'git_pull',
44
- 'git_pull(only_tags: true) # only the tags, no commits'
54
+ 'git_pull(only_tags: true) # only the tags, no commits',
55
+ 'git_pull(rebase: true) # use --rebase with pull'
45
56
  ]
46
57
  end
47
58
 
@@ -45,6 +45,11 @@ module Fastlane
45
45
  env_variable_name = Match::Utils.environment_variable_name_profile_name(app_identifier: app_identifier,
46
46
  type: Match.profile_type_sym(params[:type]),
47
47
  platform: params[:platform])
48
+
49
+ if params[:derive_catalyst_app_identifier]
50
+ app_identifier = "maccatalyst.#{app_identifier}"
51
+ end
52
+
48
53
  mapping[app_identifier] = ENV[env_variable_name]
49
54
  end
50
55
 
@@ -216,7 +216,9 @@ module Fastlane
216
216
  end
217
217
 
218
218
  def execute_action(method_sym, class_ref, arguments, custom_dir: nil, from_action: false)
219
- if custom_dir.nil?
219
+ if from_action == true
220
+ custom_dir = "." # We preserve the directory from where the previous action was called from
221
+ elsif custom_dir.nil?
220
222
  custom_dir ||= "." if Helper.test?
221
223
  custom_dir ||= ".."
222
224
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.152.0'.freeze
2
+ VERSION = '2.155.1'.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
@@ -14,4 +14,4 @@ class Deliverfile: DeliverfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.152.0
17
+ // Generated with fastlane 2.155.1
@@ -245,4 +245,4 @@ extension DeliverfileProtocol {
245
245
 
246
246
  // Please don't remove the lines below
247
247
  // They are used to detect outdated files
248
- // FastlaneRunnerAPIVersion [0.9.25]
248
+ // FastlaneRunnerAPIVersion [0.9.30]
@@ -13,7 +13,8 @@ import Foundation
13
13
  */
14
14
  @discardableResult func adb(serial: String = "",
15
15
  command: String? = nil,
16
- adbPath: String = "adb") -> String {
16
+ adbPath: String = "adb") -> String
17
+ {
17
18
  let command = RubyCommand(commandID: "", methodName: "adb", className: nil, args: [RubyCommand.Argument(name: "serial", value: serial),
18
19
  RubyCommand.Argument(name: "command", value: command),
19
20
  RubyCommand.Argument(name: "adb_path", value: adbPath)])
@@ -76,7 +77,8 @@ func addGitTag(tag: String? = nil,
76
77
  message: String? = nil,
77
78
  commit: String? = nil,
78
79
  force: Bool = false,
79
- sign: Bool = false) {
80
+ sign: Bool = false)
81
+ {
80
82
  let command = RubyCommand(commandID: "", methodName: "add_git_tag", className: nil, args: [RubyCommand.Argument(name: "tag", value: tag),
81
83
  RubyCommand.Argument(name: "grouping", value: grouping),
82
84
  RubyCommand.Argument(name: "prefix", value: prefix),
@@ -112,7 +114,8 @@ func appStoreBuildNumber(initialBuildNumber: Any,
112
114
  live: Bool = true,
113
115
  version: String? = nil,
114
116
  platform: String = "ios",
115
- teamName: String? = nil) {
117
+ teamName: String? = nil)
118
+ {
116
119
  let command = RubyCommand(commandID: "", methodName: "app_store_build_number", className: nil, args: [RubyCommand.Argument(name: "initial_build_number", value: initialBuildNumber),
117
120
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
118
121
  RubyCommand.Argument(name: "username", value: username),
@@ -148,7 +151,8 @@ func appaloosa(binary: String,
148
151
  screenshots: String,
149
152
  locale: String = "en-US",
150
153
  device: String? = nil,
151
- description: String? = nil) {
154
+ description: String? = nil)
155
+ {
152
156
  let command = RubyCommand(commandID: "", methodName: "appaloosa", className: nil, args: [RubyCommand.Argument(name: "binary", value: binary),
153
157
  RubyCommand.Argument(name: "api_token", value: apiToken),
154
158
  RubyCommand.Argument(name: "store_id", value: storeId),
@@ -182,7 +186,8 @@ func appetize(apiHost: String = "api.appetize.io",
182
186
  platform: String = "ios",
183
187
  path: String? = nil,
184
188
  publicKey: String? = nil,
185
- note: String? = nil) {
189
+ note: String? = nil)
190
+ {
186
191
  let command = RubyCommand(commandID: "", methodName: "appetize", className: nil, args: [RubyCommand.Argument(name: "api_host", value: apiHost),
187
192
  RubyCommand.Argument(name: "api_token", value: apiToken),
188
193
  RubyCommand.Argument(name: "url", value: url),
@@ -223,7 +228,8 @@ func appetizeViewingUrlGenerator(publicKey: String,
223
228
  launchUrl: String? = nil,
224
229
  osVersion: String? = nil,
225
230
  params: String? = nil,
226
- proxy: String? = nil) {
231
+ proxy: String? = nil)
232
+ {
227
233
  let command = RubyCommand(commandID: "", methodName: "appetize_viewing_url_generator", className: nil, args: [RubyCommand.Argument(name: "public_key", value: publicKey),
228
234
  RubyCommand.Argument(name: "base_url", value: baseUrl),
229
235
  RubyCommand.Argument(name: "device", value: device),
@@ -260,7 +266,8 @@ func appium(platform: String,
260
266
  port: Int = 4723,
261
267
  appiumPath: String? = nil,
262
268
  caps: [String: Any]? = nil,
263
- appiumLib: [String: Any]? = nil) {
269
+ appiumLib: [String: Any]? = nil)
270
+ {
264
271
  let command = RubyCommand(commandID: "", methodName: "appium", className: nil, args: [RubyCommand.Argument(name: "platform", value: platform),
265
272
  RubyCommand.Argument(name: "spec_path", value: specPath),
266
273
  RubyCommand.Argument(name: "app_path", value: appPath),
@@ -369,7 +376,8 @@ func appledoc(input: Any,
369
376
  docsSectionTitle: String? = nil,
370
377
  warnings: String? = nil,
371
378
  logformat: Any? = nil,
372
- verbose: Any? = nil) {
379
+ verbose: Any? = nil)
380
+ {
373
381
  let command = RubyCommand(commandID: "", methodName: "appledoc", className: nil, args: [RubyCommand.Argument(name: "input", value: input),
374
382
  RubyCommand.Argument(name: "output", value: output),
375
383
  RubyCommand.Argument(name: "templates", value: templates),
@@ -549,7 +557,8 @@ func appstore(username: String,
549
557
  languages: [String]? = nil,
550
558
  ignoreLanguageDirectoryValidation: Bool = false,
551
559
  precheckIncludeInAppPurchases: Bool = true,
552
- app: Any) {
560
+ app: Any)
561
+ {
553
562
  let command = RubyCommand(commandID: "", methodName: "appstore", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
554
563
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
555
564
  RubyCommand.Argument(name: "app_version", value: appVersion),
@@ -623,7 +632,8 @@ func appstore(username: String,
623
632
  */
624
633
  func apteligent(dsym: String? = nil,
625
634
  appId: String,
626
- apiKey: String) {
635
+ apiKey: String)
636
+ {
627
637
  let command = RubyCommand(commandID: "", methodName: "apteligent", className: nil, args: [RubyCommand.Argument(name: "dsym", value: dsym),
628
638
  RubyCommand.Argument(name: "app_id", value: appId),
629
639
  RubyCommand.Argument(name: "api_key", value: apiKey)])
@@ -662,7 +672,8 @@ func artifactory(file: String,
662
672
  proxyPassword: String? = nil,
663
673
  proxyAddress: String? = nil,
664
674
  proxyPort: String? = nil,
665
- readTimeout: String? = nil) {
675
+ readTimeout: String? = nil)
676
+ {
666
677
  let command = RubyCommand(commandID: "", methodName: "artifactory", className: nil, args: [RubyCommand.Argument(name: "file", value: file),
667
678
  RubyCommand.Argument(name: "repo", value: repo),
668
679
  RubyCommand.Argument(name: "repo_path", value: repoPath),
@@ -704,7 +715,8 @@ func automaticCodeSigning(path: String,
704
715
  codeSignIdentity: String? = nil,
705
716
  profileName: String? = nil,
706
717
  profileUuid: String? = nil,
707
- bundleIdentifier: String? = nil) {
718
+ bundleIdentifier: String? = nil)
719
+ {
708
720
  let command = RubyCommand(commandID: "", methodName: "automatic_code_signing", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
709
721
  RubyCommand.Argument(name: "use_automatic_signing", value: useAutomaticSigning),
710
722
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -740,7 +752,8 @@ func backupXcarchive(xcarchive: String,
740
752
  destination: String,
741
753
  zip: Bool = true,
742
754
  zipFilename: String? = nil,
743
- versioned: Bool = true) {
755
+ versioned: Bool = true)
756
+ {
744
757
  let command = RubyCommand(commandID: "", methodName: "backup_xcarchive", className: nil, args: [RubyCommand.Argument(name: "xcarchive", value: xcarchive),
745
758
  RubyCommand.Argument(name: "destination", value: destination),
746
759
  RubyCommand.Argument(name: "zip", value: zip),
@@ -781,7 +794,8 @@ func badge(dark: Any? = nil,
781
794
  glob: String? = nil,
782
795
  alphaChannel: Any? = nil,
783
796
  shieldGravity: String? = nil,
784
- shieldNoResize: Any? = nil) {
797
+ shieldNoResize: Any? = nil)
798
+ {
785
799
  let command = RubyCommand(commandID: "", methodName: "badge", className: nil, args: [RubyCommand.Argument(name: "dark", value: dark),
786
800
  RubyCommand.Argument(name: "custom", value: custom),
787
801
  RubyCommand.Argument(name: "no_badge", value: noBadge),
@@ -813,7 +827,8 @@ func buildAndUploadToAppetize(xcodebuild: [String: Any] = [:],
813
827
  scheme: String? = nil,
814
828
  apiToken: String,
815
829
  publicKey: String? = nil,
816
- note: String? = nil) {
830
+ note: String? = nil)
831
+ {
817
832
  let command = RubyCommand(commandID: "", methodName: "build_and_upload_to_appetize", className: nil, args: [RubyCommand.Argument(name: "xcodebuild", value: xcodebuild),
818
833
  RubyCommand.Argument(name: "scheme", value: scheme),
819
834
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -854,7 +869,8 @@ func buildAndroidApp(task: String? = nil,
854
869
  systemProperties: Any? = nil,
855
870
  serial: String = "",
856
871
  printCommand: Bool = true,
857
- printCommandOutput: Bool = true) {
872
+ printCommandOutput: Bool = true)
873
+ {
858
874
  let command = RubyCommand(commandID: "", methodName: "build_android_app", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
859
875
  RubyCommand.Argument(name: "flavor", value: flavor),
860
876
  RubyCommand.Argument(name: "build_type", value: buildType),
@@ -966,7 +982,8 @@ func buildApp(workspace: String? = nil,
966
982
  analyzeBuildTime: Bool? = nil,
967
983
  xcprettyUtf: Bool? = nil,
968
984
  skipProfileDetection: Bool = false,
969
- clonedSourcePackagesPath: String? = nil) {
985
+ clonedSourcePackagesPath: String? = nil)
986
+ {
970
987
  let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
971
988
  RubyCommand.Argument(name: "project", value: project),
972
989
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -1104,7 +1121,8 @@ func buildIosApp(workspace: String? = nil,
1104
1121
  analyzeBuildTime: Bool? = nil,
1105
1122
  xcprettyUtf: Bool? = nil,
1106
1123
  skipProfileDetection: Bool = false,
1107
- clonedSourcePackagesPath: String? = nil) {
1124
+ clonedSourcePackagesPath: String? = nil)
1125
+ {
1108
1126
  let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1109
1127
  RubyCommand.Argument(name: "project", value: project),
1110
1128
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -1241,7 +1259,8 @@ func buildMacApp(workspace: String? = nil,
1241
1259
  analyzeBuildTime: Bool? = nil,
1242
1260
  xcprettyUtf: Bool? = nil,
1243
1261
  skipProfileDetection: Bool = false,
1244
- clonedSourcePackagesPath: String? = nil) {
1262
+ clonedSourcePackagesPath: String? = nil)
1263
+ {
1245
1264
  let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1246
1265
  RubyCommand.Argument(name: "project", value: project),
1247
1266
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -1327,7 +1346,8 @@ func bundleInstall(binstubs: String? = nil,
1327
1346
  standalone: String? = nil,
1328
1347
  trustPolicy: String? = nil,
1329
1348
  without: String? = nil,
1330
- with: String? = nil) {
1349
+ with: String? = nil)
1350
+ {
1331
1351
  let command = RubyCommand(commandID: "", methodName: "bundle_install", className: nil, args: [RubyCommand.Argument(name: "binstubs", value: binstubs),
1332
1352
  RubyCommand.Argument(name: "clean", value: clean),
1333
1353
  RubyCommand.Argument(name: "full_index", value: fullIndex),
@@ -1397,7 +1417,8 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1397
1417
  exitOnTestFailure: Bool = true,
1398
1418
  reinstallApp: Bool = false,
1399
1419
  useTimestampSuffix: Bool = true,
1400
- adbHost: String? = nil) {
1420
+ adbHost: String? = nil)
1421
+ {
1401
1422
  let command = RubyCommand(commandID: "", methodName: "capture_android_screenshots", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
1402
1423
  RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
1403
1424
  RubyCommand.Argument(name: "locales", value: locales),
@@ -1442,6 +1463,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1442
1463
  - clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
1443
1464
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1444
1465
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
1466
+ - headless: Enabling this option will prevent displaying the simulator window
1445
1467
  - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
1446
1468
  - localizeSimulator: Enabling this option will configure the Simulator's system language
1447
1469
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
@@ -1469,6 +1491,7 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1469
1491
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1470
1492
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1471
1493
  - disableXcpretty: Disable xcpretty formatting of build
1494
+ - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1472
1495
  */
1473
1496
  func captureIosScreenshots(workspace: String? = nil,
1474
1497
  project: String? = nil,
@@ -1485,6 +1508,7 @@ func captureIosScreenshots(workspace: String? = nil,
1485
1508
  clearPreviousScreenshots: Bool = false,
1486
1509
  reinstallApp: Bool = false,
1487
1510
  eraseSimulator: Bool = false,
1511
+ headless: Bool = true,
1488
1512
  overrideStatusBar: Bool = false,
1489
1513
  localizeSimulator: Bool = false,
1490
1514
  darkMode: Bool? = nil,
@@ -1511,7 +1535,9 @@ func captureIosScreenshots(workspace: String? = nil,
1511
1535
  testplan: String? = nil,
1512
1536
  onlyTesting: Any? = nil,
1513
1537
  skipTesting: Any? = nil,
1514
- disableXcpretty: Bool? = nil) {
1538
+ disableXcpretty: Bool? = nil,
1539
+ suppressXcodeOutput: Bool? = nil)
1540
+ {
1515
1541
  let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1516
1542
  RubyCommand.Argument(name: "project", value: project),
1517
1543
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -1527,6 +1553,7 @@ func captureIosScreenshots(workspace: String? = nil,
1527
1553
  RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
1528
1554
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
1529
1555
  RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
1556
+ RubyCommand.Argument(name: "headless", value: headless),
1530
1557
  RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
1531
1558
  RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
1532
1559
  RubyCommand.Argument(name: "dark_mode", value: darkMode),
@@ -1553,7 +1580,8 @@ func captureIosScreenshots(workspace: String? = nil,
1553
1580
  RubyCommand.Argument(name: "testplan", value: testplan),
1554
1581
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1555
1582
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1556
- RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
1583
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1584
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
1557
1585
  _ = runner.executeCommand(command)
1558
1586
  }
1559
1587
 
@@ -1576,6 +1604,7 @@ func captureIosScreenshots(workspace: String? = nil,
1576
1604
  - clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
1577
1605
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
1578
1606
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
1607
+ - headless: Enabling this option will prevent displaying the simulator window
1579
1608
  - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
1580
1609
  - localizeSimulator: Enabling this option will configure the Simulator's system language
1581
1610
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
@@ -1603,6 +1632,7 @@ func captureIosScreenshots(workspace: String? = nil,
1603
1632
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
1604
1633
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
1605
1634
  - disableXcpretty: Disable xcpretty formatting of build
1635
+ - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1606
1636
  */
1607
1637
  func captureScreenshots(workspace: String? = nil,
1608
1638
  project: String? = nil,
@@ -1619,6 +1649,7 @@ func captureScreenshots(workspace: String? = nil,
1619
1649
  clearPreviousScreenshots: Bool = false,
1620
1650
  reinstallApp: Bool = false,
1621
1651
  eraseSimulator: Bool = false,
1652
+ headless: Bool = true,
1622
1653
  overrideStatusBar: Bool = false,
1623
1654
  localizeSimulator: Bool = false,
1624
1655
  darkMode: Bool? = nil,
@@ -1645,7 +1676,9 @@ func captureScreenshots(workspace: String? = nil,
1645
1676
  testplan: String? = nil,
1646
1677
  onlyTesting: Any? = nil,
1647
1678
  skipTesting: Any? = nil,
1648
- disableXcpretty: Bool? = nil) {
1679
+ disableXcpretty: Bool? = nil,
1680
+ suppressXcodeOutput: Bool? = nil)
1681
+ {
1649
1682
  let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1650
1683
  RubyCommand.Argument(name: "project", value: project),
1651
1684
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -1661,6 +1694,7 @@ func captureScreenshots(workspace: String? = nil,
1661
1694
  RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
1662
1695
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
1663
1696
  RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
1697
+ RubyCommand.Argument(name: "headless", value: headless),
1664
1698
  RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
1665
1699
  RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
1666
1700
  RubyCommand.Argument(name: "dark_mode", value: darkMode),
@@ -1687,7 +1721,8 @@ func captureScreenshots(workspace: String? = nil,
1687
1721
  RubyCommand.Argument(name: "testplan", value: testplan),
1688
1722
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
1689
1723
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
1690
- RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
1724
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1725
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
1691
1726
  _ = runner.executeCommand(command)
1692
1727
  }
1693
1728
 
@@ -1699,6 +1734,7 @@ func captureScreenshots(workspace: String? = nil,
1699
1734
  - dependencies: Carthage dependencies to update, build or bootstrap
1700
1735
  - useSsh: Use SSH for downloading GitHub repositories
1701
1736
  - useSubmodules: Add dependencies as Git submodules
1737
+ - useNetrc: Use .netrc for downloading frameworks
1702
1738
  - useBinaries: Check out dependency repositories even when prebuilt frameworks exist
1703
1739
  - noCheckout: When bootstrapping Carthage do not checkout
1704
1740
  - noBuild: When bootstrapping Carthage do not build
@@ -1720,6 +1756,7 @@ func carthage(command: String = "bootstrap",
1720
1756
  dependencies: [String] = [],
1721
1757
  useSsh: Bool? = nil,
1722
1758
  useSubmodules: Bool? = nil,
1759
+ useNetrc: Bool? = nil,
1723
1760
  useBinaries: Bool? = nil,
1724
1761
  noCheckout: Bool? = nil,
1725
1762
  noBuild: Bool? = nil,
@@ -1735,11 +1772,13 @@ func carthage(command: String = "bootstrap",
1735
1772
  projectDirectory: String? = nil,
1736
1773
  newResolver: Bool? = nil,
1737
1774
  logPath: String? = nil,
1738
- executable: String = "carthage") {
1775
+ executable: String = "carthage")
1776
+ {
1739
1777
  let command = RubyCommand(commandID: "", methodName: "carthage", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
1740
1778
  RubyCommand.Argument(name: "dependencies", value: dependencies),
1741
1779
  RubyCommand.Argument(name: "use_ssh", value: useSsh),
1742
1780
  RubyCommand.Argument(name: "use_submodules", value: useSubmodules),
1781
+ RubyCommand.Argument(name: "use_netrc", value: useNetrc),
1743
1782
  RubyCommand.Argument(name: "use_binaries", value: useBinaries),
1744
1783
  RubyCommand.Argument(name: "no_checkout", value: noCheckout),
1745
1784
  RubyCommand.Argument(name: "no_build", value: noBuild),
@@ -1790,7 +1829,8 @@ func cert(development: Bool = false,
1790
1829
  outputPath: String = ".",
1791
1830
  keychainPath: String,
1792
1831
  keychainPassword: String? = nil,
1793
- platform: String = "ios") {
1832
+ platform: String = "ios")
1833
+ {
1794
1834
  let command = RubyCommand(commandID: "", methodName: "cert", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
1795
1835
  RubyCommand.Argument(name: "type", value: type),
1796
1836
  RubyCommand.Argument(name: "force", value: force),
@@ -1836,7 +1876,8 @@ func cert(development: Bool = false,
1836
1876
  matchLightweightTag: Bool = true,
1837
1877
  quiet: Bool = false,
1838
1878
  includeMerges: Bool? = nil,
1839
- mergeCommitFiltering: String = "include_merges") -> String {
1879
+ mergeCommitFiltering: String = "include_merges") -> String
1880
+ {
1840
1881
  let command = RubyCommand(commandID: "", methodName: "changelog_from_git_commits", className: nil, args: [RubyCommand.Argument(name: "between", value: between),
1841
1882
  RubyCommand.Argument(name: "commits_count", value: commitsCount),
1842
1883
  RubyCommand.Argument(name: "path", value: path),
@@ -1865,7 +1906,8 @@ func cert(development: Bool = false,
1865
1906
  func chatwork(apiToken: String,
1866
1907
  message: String,
1867
1908
  roomid: Any,
1868
- success: Bool = true) {
1909
+ success: Bool = true)
1910
+ {
1869
1911
  let command = RubyCommand(commandID: "", methodName: "chatwork", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
1870
1912
  RubyCommand.Argument(name: "message", value: message),
1871
1913
  RubyCommand.Argument(name: "roomid", value: roomid),
@@ -1913,7 +1955,8 @@ func checkAppStoreMetadata(appIdentifier: String,
1913
1955
  freeStuffInIap: Any? = nil,
1914
1956
  customText: Any? = nil,
1915
1957
  copyrightDate: Any? = nil,
1916
- unreachableUrls: Any? = nil) {
1958
+ unreachableUrls: Any? = nil)
1959
+ {
1917
1960
  let command = RubyCommand(commandID: "", methodName: "check_app_store_metadata", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
1918
1961
  RubyCommand.Argument(name: "username", value: username),
1919
1962
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -1996,7 +2039,8 @@ func cloc(binaryPath: String = "/usr/local/bin/cloc",
1996
2039
  excludeDir: String? = nil,
1997
2040
  outputDirectory: String = "build",
1998
2041
  sourceDirectory: String = "",
1999
- xml: Bool = true) {
2042
+ xml: Bool = true)
2043
+ {
2000
2044
  let command = RubyCommand(commandID: "", methodName: "cloc", className: nil, args: [RubyCommand.Argument(name: "binary_path", value: binaryPath),
2001
2045
  RubyCommand.Argument(name: "exclude_dir", value: excludeDir),
2002
2046
  RubyCommand.Argument(name: "output_directory", value: outputDirectory),
@@ -2043,7 +2087,8 @@ func cocoapods(repoUpdate: Bool = false,
2043
2087
  tryRepoUpdateOnError: Bool = false,
2044
2088
  deployment: Bool = false,
2045
2089
  clean: Bool = true,
2046
- integrate: Bool = true) {
2090
+ integrate: Bool = true)
2091
+ {
2047
2092
  let command = RubyCommand(commandID: "", methodName: "cocoapods", className: nil, args: [RubyCommand.Argument(name: "repo_update", value: repoUpdate),
2048
2093
  RubyCommand.Argument(name: "clean_install", value: cleanInstall),
2049
2094
  RubyCommand.Argument(name: "silent", value: silent),
@@ -2084,7 +2129,8 @@ func cocoapods(repoUpdate: Bool = false,
2084
2129
  branch: String = "master",
2085
2130
  path: String,
2086
2131
  message: String? = nil,
2087
- secure: Bool = true) -> [String: String] {
2132
+ secure: Bool = true) -> [String: String]
2133
+ {
2088
2134
  let command = RubyCommand(commandID: "", methodName: "commit_github_file", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
2089
2135
  RubyCommand.Argument(name: "server_url", value: serverUrl),
2090
2136
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -2123,7 +2169,8 @@ func commitVersionBump(message: String? = nil,
2123
2169
  settings: Bool = false,
2124
2170
  ignore: Any? = nil,
2125
2171
  include: [String] = [],
2126
- noVerify: Bool = false) {
2172
+ noVerify: Bool = false)
2173
+ {
2127
2174
  let command = RubyCommand(commandID: "", methodName: "commit_version_bump", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
2128
2175
  RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
2129
2176
  RubyCommand.Argument(name: "force", value: force),
@@ -2149,7 +2196,8 @@ func commitVersionBump(message: String? = nil,
2149
2196
  func copyArtifacts(keepOriginal: Bool = true,
2150
2197
  targetPath: Any = "artifacts",
2151
2198
  artifacts: [String] = [],
2152
- failOnMissing: Bool = false) {
2199
+ failOnMissing: Bool = false)
2200
+ {
2153
2201
  let command = RubyCommand(commandID: "", methodName: "copy_artifacts", className: nil, args: [RubyCommand.Argument(name: "keep_original", value: keepOriginal),
2154
2202
  RubyCommand.Argument(name: "target_path", value: targetPath),
2155
2203
  RubyCommand.Argument(name: "artifacts", value: artifacts),
@@ -2187,7 +2235,8 @@ func crashlytics(ipaPath: String? = nil,
2187
2235
  groups: Any? = nil,
2188
2236
  emails: Any? = nil,
2189
2237
  notifications: Bool = true,
2190
- debug: Bool = false) {
2238
+ debug: Bool = false)
2239
+ {
2191
2240
  let command = RubyCommand(commandID: "", methodName: "crashlytics", className: nil, args: [RubyCommand.Argument(name: "ipa_path", value: ipaPath),
2192
2241
  RubyCommand.Argument(name: "apk_path", value: apkPath),
2193
2242
  RubyCommand.Argument(name: "crashlytics_path", value: crashlyticsPath),
@@ -2224,7 +2273,8 @@ func createAppOnManagedPlayStore(jsonKey: String? = nil,
2224
2273
  appTitle: String,
2225
2274
  language: String = "en_US",
2226
2275
  rootUrl: String? = nil,
2227
- timeout: Int = 300) {
2276
+ timeout: Int = 300)
2277
+ {
2228
2278
  let command = RubyCommand(commandID: "", methodName: "create_app_on_managed_play_store", className: nil, args: [RubyCommand.Argument(name: "json_key", value: jsonKey),
2229
2279
  RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
2230
2280
  RubyCommand.Argument(name: "developer_account_id", value: developerAccountId),
@@ -2282,7 +2332,8 @@ func createAppOnline(username: String,
2282
2332
  teamId: String? = nil,
2283
2333
  teamName: String? = nil,
2284
2334
  itcTeamId: Any? = nil,
2285
- itcTeamName: String? = nil) {
2335
+ itcTeamName: String? = nil)
2336
+ {
2286
2337
  let command = RubyCommand(commandID: "", methodName: "create_app_online", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2287
2338
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2288
2339
  RubyCommand.Argument(name: "bundle_identifier_suffix", value: bundleIdentifierSuffix),
@@ -2329,7 +2380,8 @@ func createKeychain(name: String? = nil,
2329
2380
  lockWhenSleeps: Bool = false,
2330
2381
  lockAfterTimeout: Bool = false,
2331
2382
  addToSearchList: Bool = true,
2332
- requireCreate: Bool = false) {
2383
+ requireCreate: Bool = false)
2384
+ {
2333
2385
  let command = RubyCommand(commandID: "", methodName: "create_keychain", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
2334
2386
  RubyCommand.Argument(name: "path", value: path),
2335
2387
  RubyCommand.Argument(name: "password", value: password),
@@ -2375,7 +2427,8 @@ func createPullRequest(apiToken: String,
2375
2427
  apiUrl: String = "https://api.github.com",
2376
2428
  assignees: [String]? = nil,
2377
2429
  reviewers: [String]? = nil,
2378
- teamReviewers: [String]? = nil) {
2430
+ teamReviewers: [String]? = nil)
2431
+ {
2379
2432
  let command = RubyCommand(commandID: "", methodName: "create_pull_request", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
2380
2433
  RubyCommand.Argument(name: "repo", value: repo),
2381
2434
  RubyCommand.Argument(name: "title", value: title),
@@ -2421,7 +2474,8 @@ func danger(useBundleExec: Bool = true,
2421
2474
  removePreviousComments: Bool = false,
2422
2475
  base: String? = nil,
2423
2476
  head: String? = nil,
2424
- pr: String? = nil) {
2477
+ pr: String? = nil)
2478
+ {
2425
2479
  let command = RubyCommand(commandID: "", methodName: "danger", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
2426
2480
  RubyCommand.Argument(name: "verbose", value: verbose),
2427
2481
  RubyCommand.Argument(name: "danger_id", value: dangerId),
@@ -2462,7 +2516,8 @@ func defaultPlatform() {
2462
2516
  Keychains can be deleted after being created with `create_keychain`
2463
2517
  */
2464
2518
  func deleteKeychain(name: String? = nil,
2465
- keychainPath: String? = nil) {
2519
+ keychainPath: String? = nil)
2520
+ {
2466
2521
  let command = RubyCommand(commandID: "", methodName: "delete_keychain", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
2467
2522
  RubyCommand.Argument(name: "keychain_path", value: keychainPath)])
2468
2523
  _ = runner.executeCommand(command)
@@ -2599,7 +2654,8 @@ func deliver(username: Any = deliverfile.username,
2599
2654
  languages: [String]? = deliverfile.languages,
2600
2655
  ignoreLanguageDirectoryValidation: Bool = deliverfile.ignoreLanguageDirectoryValidation,
2601
2656
  precheckIncludeInAppPurchases: Bool = deliverfile.precheckIncludeInAppPurchases,
2602
- app: Any = deliverfile.app) {
2657
+ app: Any = deliverfile.app)
2658
+ {
2603
2659
  let command = RubyCommand(commandID: "", methodName: "deliver", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2604
2660
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2605
2661
  RubyCommand.Argument(name: "app_version", value: appVersion),
@@ -2688,7 +2744,8 @@ func deploygate(apiToken: String,
2688
2744
  distributionKey: String? = nil,
2689
2745
  releaseNote: String? = nil,
2690
2746
  disableNotify: Bool = false,
2691
- distributionName: String? = nil) {
2747
+ distributionName: String? = nil)
2748
+ {
2692
2749
  let command = RubyCommand(commandID: "", methodName: "deploygate", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
2693
2750
  RubyCommand.Argument(name: "user", value: user),
2694
2751
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -2760,11 +2817,12 @@ func downloadDsyms(username: String,
2760
2817
  teamName: String? = nil,
2761
2818
  platform: String = "ios",
2762
2819
  version: String? = nil,
2763
- buildNumber: String? = nil,
2820
+ buildNumber: Any? = nil,
2764
2821
  minVersion: String? = nil,
2765
2822
  outputDirectory: String? = nil,
2766
2823
  waitForDsymProcessing: Bool = false,
2767
- waitTimeout: Int = 300) {
2824
+ waitTimeout: Int = 300)
2825
+ {
2768
2826
  let command = RubyCommand(commandID: "", methodName: "download_dsyms", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
2769
2827
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2770
2828
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -2805,7 +2863,8 @@ func downloadFromPlayStore(packageName: String,
2805
2863
  jsonKey: String? = nil,
2806
2864
  jsonKeyData: String? = nil,
2807
2865
  rootUrl: String? = nil,
2808
- timeout: Int = 300) {
2866
+ timeout: Int = 300)
2867
+ {
2809
2868
  let command = RubyCommand(commandID: "", methodName: "download_from_play_store", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
2810
2869
  RubyCommand.Argument(name: "version_name", value: versionName),
2811
2870
  RubyCommand.Argument(name: "track", value: track),
@@ -2831,7 +2890,8 @@ func downloadFromPlayStore(packageName: String,
2831
2890
  */
2832
2891
  func dsymZip(archivePath: String? = nil,
2833
2892
  dsymPath: String? = nil,
2834
- all: Bool = false) {
2893
+ all: Bool = false)
2894
+ {
2835
2895
  let command = RubyCommand(commandID: "", methodName: "dsym_zip", className: nil, args: [RubyCommand.Argument(name: "archive_path", value: archivePath),
2836
2896
  RubyCommand.Argument(name: "dsym_path", value: dsymPath),
2837
2897
  RubyCommand.Argument(name: "all", value: all)])
@@ -2896,7 +2956,8 @@ func ensureGitBranch(branch: String = "master") {
2896
2956
  Also needed as a prerequisite for some other actions like `reset_git_repo`.
2897
2957
  */
2898
2958
  func ensureGitStatusClean(showUncommittedChanges: Bool = false,
2899
- showDiff: Bool = false) {
2959
+ showDiff: Bool = false)
2960
+ {
2900
2961
  let command = RubyCommand(commandID: "", methodName: "ensure_git_status_clean", className: nil, args: [RubyCommand.Argument(name: "show_uncommitted_changes", value: showUncommittedChanges),
2901
2962
  RubyCommand.Argument(name: "show_diff", value: showDiff)])
2902
2963
  _ = runner.executeCommand(command)
@@ -2921,7 +2982,8 @@ func ensureNoDebugCode(text: String,
2921
2982
  extension: String? = nil,
2922
2983
  extensions: Any? = nil,
2923
2984
  exclude: String? = nil,
2924
- excludeDirs: [String]? = nil) {
2985
+ excludeDirs: [String]? = nil)
2986
+ {
2925
2987
  let command = RubyCommand(commandID: "", methodName: "ensure_no_debug_code", className: nil, args: [RubyCommand.Argument(name: "text", value: text),
2926
2988
  RubyCommand.Argument(name: "path", value: path),
2927
2989
  RubyCommand.Argument(name: "extension", value: `extension`),
@@ -2944,7 +3006,8 @@ func ensureNoDebugCode(text: String,
2944
3006
  Using the `strict` parameter, you can either verify the full set of version numbers strictly (i.e. `11.3.1`) or only a subset of them (i.e. `11.3` or `11`).
2945
3007
  */
2946
3008
  func ensureXcodeVersion(version: String? = nil,
2947
- strict: Bool = true) {
3009
+ strict: Bool = true)
3010
+ {
2948
3011
  let command = RubyCommand(commandID: "", methodName: "ensure_xcode_version", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
2949
3012
  RubyCommand.Argument(name: "strict", value: strict)])
2950
3013
  _ = runner.executeCommand(command)
@@ -2960,7 +3023,8 @@ func ensureXcodeVersion(version: String? = nil,
2960
3023
  */
2961
3024
  @discardableResult func environmentVariable(set: [String: Any]? = nil,
2962
3025
  get: String? = nil,
2963
- remove: String? = nil) -> String {
3026
+ remove: String? = nil) -> String
3027
+ {
2964
3028
  let command = RubyCommand(commandID: "", methodName: "environment_variable", className: nil, args: [RubyCommand.Argument(name: "set", value: set),
2965
3029
  RubyCommand.Argument(name: "get", value: get),
2966
3030
  RubyCommand.Argument(name: "remove", value: remove)])
@@ -2974,16 +3038,20 @@ func ensureXcodeVersion(version: String? = nil,
2974
3038
  - template: ERB Template File
2975
3039
  - destination: Destination file
2976
3040
  - placeholders: Placeholders given as a hash
3041
+ - trimMode: Trim mode applied to the ERB
2977
3042
 
2978
3043
  Renders an ERB template with `:placeholders` given as a hash via parameter.
2979
3044
  If no `:destination` is set, it returns the rendered template as string.
2980
3045
  */
2981
3046
  func erb(template: String,
2982
3047
  destination: String? = nil,
2983
- placeholders: [String: Any] = [:]) {
3048
+ placeholders: [String: Any] = [:],
3049
+ trimMode: String? = nil)
3050
+ {
2984
3051
  let command = RubyCommand(commandID: "", methodName: "erb", className: nil, args: [RubyCommand.Argument(name: "template", value: template),
2985
3052
  RubyCommand.Argument(name: "destination", value: destination),
2986
- RubyCommand.Argument(name: "placeholders", value: placeholders)])
3053
+ RubyCommand.Argument(name: "placeholders", value: placeholders),
3054
+ RubyCommand.Argument(name: "trim_mode", value: trimMode)])
2987
3055
  _ = runner.executeCommand(command)
2988
3056
  }
2989
3057
 
@@ -3010,7 +3078,8 @@ func fastlaneVersion() {
3010
3078
  */
3011
3079
  func flock(message: String,
3012
3080
  token: String,
3013
- baseUrl: String = "https://api.flock.co/hooks/sendMessage") {
3081
+ baseUrl: String = "https://api.flock.co/hooks/sendMessage")
3082
+ {
3014
3083
  let command = RubyCommand(commandID: "", methodName: "flock", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
3015
3084
  RubyCommand.Argument(name: "token", value: token),
3016
3085
  RubyCommand.Argument(name: "base_url", value: baseUrl)])
@@ -3058,7 +3127,8 @@ func frameScreenshots(white: Bool? = nil,
3058
3127
  debugMode: Bool = false,
3059
3128
  resume: Bool = false,
3060
3129
  usePlatform: String = "IOS",
3061
- path: String = "./") {
3130
+ path: String = "./")
3131
+ {
3062
3132
  let command = RubyCommand(commandID: "", methodName: "frame_screenshots", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
3063
3133
  RubyCommand.Argument(name: "silver", value: silver),
3064
3134
  RubyCommand.Argument(name: "rose_gold", value: roseGold),
@@ -3120,7 +3190,8 @@ func frameit(white: Bool? = nil,
3120
3190
  debugMode: Bool = false,
3121
3191
  resume: Bool = false,
3122
3192
  usePlatform: String = "IOS",
3123
- path: String = "./") {
3193
+ path: String = "./")
3194
+ {
3124
3195
  let command = RubyCommand(commandID: "", methodName: "frameit", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
3125
3196
  RubyCommand.Argument(name: "silver", value: silver),
3126
3197
  RubyCommand.Argument(name: "rose_gold", value: roseGold),
@@ -3162,7 +3233,8 @@ func gcovr() {
3162
3233
  You first have to set up your Xcode project, if you haven't done it already: [https://developer.apple.com/library/ios/qa/qa1827/_index.html](https://developer.apple.com/library/ios/qa/qa1827/_index.html).
3163
3234
  */
3164
3235
  @discardableResult func getBuildNumber(xcodeproj: String? = nil,
3165
- hideErrorWhenVersioningDisabled: Bool = false) -> String {
3236
+ hideErrorWhenVersioningDisabled: Bool = false) -> String
3237
+ {
3166
3238
  let command = RubyCommand(commandID: "", methodName: "get_build_number", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
3167
3239
  RubyCommand.Argument(name: "hide_error_when_versioning_disabled", value: hideErrorWhenVersioningDisabled)])
3168
3240
  return runner.executeCommand(command)
@@ -3215,7 +3287,8 @@ func getCertificates(development: Bool = false,
3215
3287
  outputPath: String = ".",
3216
3288
  keychainPath: String,
3217
3289
  keychainPassword: String? = nil,
3218
- platform: String = "ios") {
3290
+ platform: String = "ios")
3291
+ {
3219
3292
  let command = RubyCommand(commandID: "", methodName: "get_certificates", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
3220
3293
  RubyCommand.Argument(name: "type", value: type),
3221
3294
  RubyCommand.Argument(name: "force", value: force),
@@ -3286,7 +3359,8 @@ func getCertificates(development: Bool = false,
3286
3359
  func getGithubRelease(url: String,
3287
3360
  serverUrl: String = "https://api.github.com",
3288
3361
  version: String,
3289
- apiToken: String? = nil) {
3362
+ apiToken: String? = nil)
3363
+ {
3290
3364
  let command = RubyCommand(commandID: "", methodName: "get_github_release", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
3291
3365
  RubyCommand.Argument(name: "server_url", value: serverUrl),
3292
3366
  RubyCommand.Argument(name: "version", value: version),
@@ -3304,7 +3378,8 @@ func getGithubRelease(url: String,
3304
3378
  Get a value from a plist file, which can be used to fetch the app identifier and more information about your app
3305
3379
  */
3306
3380
  @discardableResult func getInfoPlistValue(key: String,
3307
- path: String) -> String {
3381
+ path: String) -> String
3382
+ {
3308
3383
  let command = RubyCommand(commandID: "", methodName: "get_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
3309
3384
  RubyCommand.Argument(name: "path", value: path)])
3310
3385
  return runner.executeCommand(command)
@@ -3322,7 +3397,8 @@ func getGithubRelease(url: String,
3322
3397
  This is useful for introspecting Info.plist files for `.ipa` files that have already been built.
3323
3398
  */
3324
3399
  @discardableResult func getIpaInfoPlistValue(key: String,
3325
- ipa: String) -> String {
3400
+ ipa: String) -> String
3401
+ {
3326
3402
  let command = RubyCommand(commandID: "", methodName: "get_ipa_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
3327
3403
  RubyCommand.Argument(name: "ipa", value: ipa)])
3328
3404
  return runner.executeCommand(command)
@@ -3343,7 +3419,8 @@ func getGithubRelease(url: String,
3343
3419
  Run the action and supply the "private key file" to it as the `json_key` parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your "Developer Account ID" - take note of that, you will need it to be able to use [`create_app_on_managed_play_store`](https://docs.fastlane.tools/actions/create_app_on_managed_play_store/).
3344
3420
  */
3345
3421
  func getManagedPlayStorePublishingRights(jsonKey: String? = nil,
3346
- jsonKeyData: String? = nil) {
3422
+ jsonKeyData: String? = nil)
3423
+ {
3347
3424
  let command = RubyCommand(commandID: "", methodName: "get_managed_play_store_publishing_rights", className: nil, args: [RubyCommand.Argument(name: "json_key", value: jsonKey),
3348
3425
  RubyCommand.Argument(name: "json_key_data", value: jsonKeyData)])
3349
3426
  _ = runner.executeCommand(command)
@@ -3370,7 +3447,7 @@ func getManagedPlayStorePublishingRights(jsonKey: String? = nil,
3370
3447
  - filename: Filename to use for the generated provisioning profile (must include .mobileprovision)
3371
3448
  - skipFetchProfiles: Skips the verification of existing profiles which is useful if you have thousands of profiles
3372
3449
  - skipCertificateVerification: Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine
3373
- - platform: Set the provisioning profile's platform (i.e. ios, tvos)
3450
+ - platform: Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst)
3374
3451
  - readonly: Only fetch existing profile, don't generate new ones
3375
3452
  - 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")
3376
3453
  - 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
@@ -3399,7 +3476,8 @@ func getProvisioningProfile(adhoc: Bool = false,
3399
3476
  platform: Any = "ios",
3400
3477
  readonly: Bool = false,
3401
3478
  templateName: String? = nil,
3402
- failOnNameTaken: Bool = false) {
3479
+ failOnNameTaken: Bool = false)
3480
+ {
3403
3481
  let command = RubyCommand(commandID: "", methodName: "get_provisioning_profile", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
3404
3482
  RubyCommand.Argument(name: "developer_id", value: developerId),
3405
3483
  RubyCommand.Argument(name: "development", value: development),
@@ -3468,7 +3546,8 @@ func getPushCertificate(development: Bool = false,
3468
3546
  p12Password: String,
3469
3547
  pemName: String? = nil,
3470
3548
  outputPath: String = ".",
3471
- newProfile: Any? = nil) {
3549
+ newProfile: Any? = nil)
3550
+ {
3472
3551
  let command = RubyCommand(commandID: "", methodName: "get_push_certificate", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
3473
3552
  RubyCommand.Argument(name: "website_push", value: websitePush),
3474
3553
  RubyCommand.Argument(name: "generate_p12", value: generateP12),
@@ -3498,7 +3577,8 @@ func getPushCertificate(development: Bool = false,
3498
3577
  */
3499
3578
  @discardableResult func getVersionNumber(xcodeproj: String? = nil,
3500
3579
  target: String? = nil,
3501
- configuration: String? = nil) -> String {
3580
+ configuration: String? = nil) -> String
3581
+ {
3502
3582
  let command = RubyCommand(commandID: "", methodName: "get_version_number", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
3503
3583
  RubyCommand.Argument(name: "target", value: target),
3504
3584
  RubyCommand.Argument(name: "configuration", value: configuration)])
@@ -3515,7 +3595,8 @@ func getPushCertificate(development: Bool = false,
3515
3595
  */
3516
3596
  func gitAdd(path: Any? = nil,
3517
3597
  shellEscape: Bool = true,
3518
- pathspec: String? = nil) {
3598
+ pathspec: String? = nil)
3599
+ {
3519
3600
  let command = RubyCommand(commandID: "", methodName: "git_add", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3520
3601
  RubyCommand.Argument(name: "shell_escape", value: shellEscape),
3521
3602
  RubyCommand.Argument(name: "pathspec", value: pathspec)])
@@ -3544,7 +3625,8 @@ func gitAdd(path: Any? = nil,
3544
3625
  func gitCommit(path: Any,
3545
3626
  message: String,
3546
3627
  skipGitHooks: Bool? = nil,
3547
- allowNothingToCommit: Bool? = nil) {
3628
+ allowNothingToCommit: Bool? = nil)
3629
+ {
3548
3630
  let command = RubyCommand(commandID: "", methodName: "git_commit", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
3549
3631
  RubyCommand.Argument(name: "message", value: message),
3550
3632
  RubyCommand.Argument(name: "skip_git_hooks", value: skipGitHooks),
@@ -3555,10 +3637,15 @@ func gitCommit(path: Any,
3555
3637
  /**
3556
3638
  Executes a simple git pull command
3557
3639
 
3558
- - parameter onlyTags: Simply pull the tags, and not bring new commits to the current branch from the remote
3640
+ - parameters:
3641
+ - onlyTags: Simply pull the tags, and not bring new commits to the current branch from the remote
3642
+ - rebase: Rebase on top of the remote branch instead of merge
3559
3643
  */
3560
- func gitPull(onlyTags: Bool = false) {
3561
- let command = RubyCommand(commandID: "", methodName: "git_pull", className: nil, args: [RubyCommand.Argument(name: "only_tags", value: onlyTags)])
3644
+ func gitPull(onlyTags: Bool = false,
3645
+ rebase: Bool = false)
3646
+ {
3647
+ let command = RubyCommand(commandID: "", methodName: "git_pull", className: nil, args: [RubyCommand.Argument(name: "only_tags", value: onlyTags),
3648
+ RubyCommand.Argument(name: "rebase", value: rebase)])
3562
3649
  _ = runner.executeCommand(command)
3563
3650
  }
3564
3651
 
@@ -3570,7 +3657,8 @@ func gitPull(onlyTags: Bool = false) {
3570
3657
  - init: Should the submodules be initiated before update
3571
3658
  */
3572
3659
  func gitSubmoduleUpdate(recursive: Bool = false,
3573
- init: Bool = false) {
3660
+ init: Bool = false)
3661
+ {
3574
3662
  let command = RubyCommand(commandID: "", methodName: "git_submodule_update", className: nil, args: [RubyCommand.Argument(name: "recursive", value: recursive),
3575
3663
  RubyCommand.Argument(name: "init", value: `init`)])
3576
3664
  _ = runner.executeCommand(command)
@@ -3588,7 +3676,8 @@ func gitSubmoduleUpdate(recursive: Bool = false,
3588
3676
  */
3589
3677
  func gitTagExists(tag: String,
3590
3678
  remote: Bool = false,
3591
- remoteName: String = "origin") {
3679
+ remoteName: String = "origin")
3680
+ {
3592
3681
  let command = RubyCommand(commandID: "", methodName: "git_tag_exists", className: nil, args: [RubyCommand.Argument(name: "tag", value: tag),
3593
3682
  RubyCommand.Argument(name: "remote", value: remote),
3594
3683
  RubyCommand.Argument(name: "remote_name", value: remoteName)])
@@ -3625,7 +3714,8 @@ func githubApi(serverUrl: String = "https://api.github.com",
3625
3714
  url: String? = nil,
3626
3715
  errorHandlers: [String: Any] = [:],
3627
3716
  headers: [String: Any] = [:],
3628
- secure: Bool = true) {
3717
+ secure: Bool = true)
3718
+ {
3629
3719
  let command = RubyCommand(commandID: "", methodName: "github_api", className: nil, args: [RubyCommand.Argument(name: "server_url", value: serverUrl),
3630
3720
  RubyCommand.Argument(name: "api_token", value: apiToken),
3631
3721
  RubyCommand.Argument(name: "http_method", value: httpMethod),
@@ -3663,7 +3753,8 @@ func googlePlayTrackReleaseNames(packageName: String,
3663
3753
  jsonKey: String? = nil,
3664
3754
  jsonKeyData: String? = nil,
3665
3755
  rootUrl: String? = nil,
3666
- timeout: Int = 300) {
3756
+ timeout: Int = 300)
3757
+ {
3667
3758
  let command = RubyCommand(commandID: "", methodName: "google_play_track_release_names", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
3668
3759
  RubyCommand.Argument(name: "track", value: track),
3669
3760
  RubyCommand.Argument(name: "key", value: key),
@@ -3699,7 +3790,8 @@ func googlePlayTrackVersionCodes(packageName: String,
3699
3790
  jsonKey: String? = nil,
3700
3791
  jsonKeyData: String? = nil,
3701
3792
  rootUrl: String? = nil,
3702
- timeout: Int = 300) {
3793
+ timeout: Int = 300)
3794
+ {
3703
3795
  let command = RubyCommand(commandID: "", methodName: "google_play_track_version_codes", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
3704
3796
  RubyCommand.Argument(name: "track", value: track),
3705
3797
  RubyCommand.Argument(name: "key", value: key),
@@ -3743,7 +3835,8 @@ func gradle(task: String? = nil,
3743
3835
  systemProperties: Any? = nil,
3744
3836
  serial: String = "",
3745
3837
  printCommand: Bool = true,
3746
- printCommandOutput: Bool = true) {
3838
+ printCommandOutput: Bool = true)
3839
+ {
3747
3840
  let command = RubyCommand(commandID: "", methodName: "gradle", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
3748
3841
  RubyCommand.Argument(name: "flavor", value: flavor),
3749
3842
  RubyCommand.Argument(name: "build_type", value: buildType),
@@ -3855,7 +3948,8 @@ func gym(workspace: Any? = gymfile.workspace,
3855
3948
  analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
3856
3949
  xcprettyUtf: Bool? = gymfile.xcprettyUtf,
3857
3950
  skipProfileDetection: Bool = gymfile.skipProfileDetection,
3858
- clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath) {
3951
+ clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath)
3952
+ {
3859
3953
  let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
3860
3954
  RubyCommand.Argument(name: "project", value: project),
3861
3955
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -3937,7 +4031,8 @@ func hgCommitVersionBump(message: String = "Version Bump",
3937
4031
  xcodeproj: String? = nil,
3938
4032
  force: Bool = false,
3939
4033
  testDirtyFiles: String = "file1, file2",
3940
- testExpectedFiles: String = "file1, file2") {
4034
+ testExpectedFiles: String = "file1, file2")
4035
+ {
3941
4036
  let command = RubyCommand(commandID: "", methodName: "hg_commit_version_bump", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
3942
4037
  RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
3943
4038
  RubyCommand.Argument(name: "force", value: force),
@@ -3966,7 +4061,8 @@ func hgEnsureCleanStatus() {
3966
4061
  The mercurial equivalent of [push_to_git_remote](https://docs.fastlane.tools/actions/push_to_git_remote/). Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane’s actions.
3967
4062
  */
3968
4063
  func hgPush(force: Bool = false,
3969
- destination: String = "") {
4064
+ destination: String = "")
4065
+ {
3970
4066
  let command = RubyCommand(commandID: "", methodName: "hg_push", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
3971
4067
  RubyCommand.Argument(name: "destination", value: destination)])
3972
4068
  _ = runner.executeCommand(command)
@@ -4000,7 +4096,8 @@ func hipchat(message: String = "",
4000
4096
  apiHost: String = "api.hipchat.com",
4001
4097
  messageFormat: String = "html",
4002
4098
  includeHtmlHeader: Bool = true,
4003
- from: String = "fastlane") {
4099
+ from: String = "fastlane")
4100
+ {
4004
4101
  let command = RubyCommand(commandID: "", methodName: "hipchat", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
4005
4102
  RubyCommand.Argument(name: "channel", value: channel),
4006
4103
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -4079,7 +4176,8 @@ func hockey(apk: String? = nil,
4079
4176
  strategy: String = "add",
4080
4177
  timeout: Int? = nil,
4081
4178
  bypassCdn: Bool = false,
4082
- dsaSignature: String = "") {
4179
+ dsaSignature: String = "")
4180
+ {
4083
4181
  let command = RubyCommand(commandID: "", methodName: "hockey", className: nil, args: [RubyCommand.Argument(name: "apk", value: apk),
4084
4182
  RubyCommand.Argument(name: "api_token", value: apiToken),
4085
4183
  RubyCommand.Argument(name: "ipa", value: ipa),
@@ -4126,7 +4224,8 @@ func ifttt(apiKey: String,
4126
4224
  eventName: String,
4127
4225
  value1: String? = nil,
4128
4226
  value2: String? = nil,
4129
- value3: String? = nil) {
4227
+ value3: String? = nil)
4228
+ {
4130
4229
  let command = RubyCommand(commandID: "", methodName: "ifttt", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
4131
4230
  RubyCommand.Argument(name: "event_name", value: eventName),
4132
4231
  RubyCommand.Argument(name: "value1", value: value1),
@@ -4153,7 +4252,8 @@ func importCertificate(certificatePath: String,
4153
4252
  keychainName: String,
4154
4253
  keychainPath: String? = nil,
4155
4254
  keychainPassword: String? = nil,
4156
- logOutput: Bool = false) {
4255
+ logOutput: Bool = false)
4256
+ {
4157
4257
  let command = RubyCommand(commandID: "", methodName: "import_certificate", className: nil, args: [RubyCommand.Argument(name: "certificate_path", value: certificatePath),
4158
4258
  RubyCommand.Argument(name: "certificate_password", value: certificatePassword),
4159
4259
  RubyCommand.Argument(name: "keychain_name", value: keychainName),
@@ -4173,7 +4273,8 @@ func importCertificate(certificatePath: String,
4173
4273
  - returns: The new build number
4174
4274
  */
4175
4275
  @discardableResult func incrementBuildNumber(buildNumber: Any? = nil,
4176
- xcodeproj: String? = nil) -> String {
4276
+ xcodeproj: String? = nil) -> String
4277
+ {
4177
4278
  let command = RubyCommand(commandID: "", methodName: "increment_build_number", className: nil, args: [RubyCommand.Argument(name: "build_number", value: buildNumber),
4178
4279
  RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
4179
4280
  return runner.executeCommand(command)
@@ -4194,7 +4295,8 @@ func importCertificate(certificatePath: String,
4194
4295
  */
4195
4296
  @discardableResult func incrementVersionNumber(bumpType: String = "bump",
4196
4297
  versionNumber: String? = nil,
4197
- xcodeproj: String? = nil) -> String {
4298
+ xcodeproj: String? = nil) -> String
4299
+ {
4198
4300
  let command = RubyCommand(commandID: "", methodName: "increment_version_number", className: nil, args: [RubyCommand.Argument(name: "bump_type", value: bumpType),
4199
4301
  RubyCommand.Argument(name: "version_number", value: versionNumber),
4200
4302
  RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
@@ -4215,7 +4317,8 @@ func importCertificate(certificatePath: String,
4215
4317
  func installOnDevice(extra: String? = nil,
4216
4318
  deviceId: String? = nil,
4217
4319
  skipWifi: Any? = nil,
4218
- ipa: String? = nil) {
4320
+ ipa: String? = nil)
4321
+ {
4219
4322
  let command = RubyCommand(commandID: "", methodName: "install_on_device", className: nil, args: [RubyCommand.Argument(name: "extra", value: extra),
4220
4323
  RubyCommand.Argument(name: "device_id", value: deviceId),
4221
4324
  RubyCommand.Argument(name: "skip_wifi", value: skipWifi),
@@ -4245,7 +4348,8 @@ func installProvisioningProfile(path: String) {
4245
4348
  - github: GitHub repository URL for Xcode plugin
4246
4349
  */
4247
4350
  func installXcodePlugin(url: String,
4248
- github: String? = nil) {
4351
+ github: String? = nil)
4352
+ {
4249
4353
  let command = RubyCommand(commandID: "", methodName: "install_xcode_plugin", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
4250
4354
  RubyCommand.Argument(name: "github", value: github)])
4251
4355
  _ = runner.executeCommand(command)
@@ -4265,7 +4369,8 @@ func installr(apiToken: String,
4265
4369
  ipa: String,
4266
4370
  notes: String? = nil,
4267
4371
  notify: String? = nil,
4268
- add: String? = nil) {
4372
+ add: String? = nil)
4373
+ {
4269
4374
  let command = RubyCommand(commandID: "", methodName: "installr", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
4270
4375
  RubyCommand.Argument(name: "ipa", value: ipa),
4271
4376
  RubyCommand.Argument(name: "notes", value: notes),
@@ -4304,7 +4409,8 @@ func ipa(workspace: String? = nil,
4304
4409
  sdk: String? = nil,
4305
4410
  ipa: String? = nil,
4306
4411
  xcconfig: String? = nil,
4307
- xcargs: String? = nil) {
4412
+ xcargs: String? = nil)
4413
+ {
4308
4414
  let command = RubyCommand(commandID: "", methodName: "ipa", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
4309
4415
  RubyCommand.Argument(name: "project", value: project),
4310
4416
  RubyCommand.Argument(name: "configuration", value: configuration),
@@ -4357,7 +4463,8 @@ func jira(url: String,
4357
4463
  username: String,
4358
4464
  password: String,
4359
4465
  ticketId: String,
4360
- commentText: String) {
4466
+ commentText: String)
4467
+ {
4361
4468
  let command = RubyCommand(commandID: "", methodName: "jira", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
4362
4469
  RubyCommand.Argument(name: "context_path", value: contextPath),
4363
4470
  RubyCommand.Argument(name: "username", value: username),
@@ -4426,7 +4533,8 @@ func jira(url: String,
4426
4533
  platform: String = "ios",
4427
4534
  initialBuildNumber: Int = 1,
4428
4535
  teamId: Any? = nil,
4429
- teamName: String? = nil) -> Int {
4536
+ teamName: String? = nil) -> Int
4537
+ {
4430
4538
  let command = RubyCommand(commandID: "", methodName: "latest_testflight_build_number", className: nil, args: [RubyCommand.Argument(name: "live", value: live),
4431
4539
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
4432
4540
  RubyCommand.Argument(name: "username", value: username),
@@ -4450,7 +4558,8 @@ func jira(url: String,
4450
4558
  func lcov(projectName: String,
4451
4559
  scheme: String,
4452
4560
  arch: String = "i386",
4453
- outputDir: String = "coverage_reports") {
4561
+ outputDir: String = "coverage_reports")
4562
+ {
4454
4563
  let command = RubyCommand(commandID: "", methodName: "lcov", className: nil, args: [RubyCommand.Argument(name: "project_name", value: projectName),
4455
4564
  RubyCommand.Argument(name: "scheme", value: scheme),
4456
4565
  RubyCommand.Argument(name: "arch", value: arch),
@@ -4494,7 +4603,8 @@ func mailgun(mailgunSandboxDomain: String? = nil,
4494
4603
  templatePath: String? = nil,
4495
4604
  replyTo: String? = nil,
4496
4605
  attachment: Any? = nil,
4497
- customPlaceholders: [String: Any] = [:]) {
4606
+ customPlaceholders: [String: Any] = [:])
4607
+ {
4498
4608
  let command = RubyCommand(commandID: "", methodName: "mailgun", className: nil, args: [RubyCommand.Argument(name: "mailgun_sandbox_domain", value: mailgunSandboxDomain),
4499
4609
  RubyCommand.Argument(name: "mailgun_sandbox_postmaster", value: mailgunSandboxPostmaster),
4500
4610
  RubyCommand.Argument(name: "mailgun_apikey", value: mailgunApikey),
@@ -4524,7 +4634,8 @@ func mailgun(mailgunSandboxDomain: String? = nil,
4524
4634
  This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build.
4525
4635
  */
4526
4636
  func makeChangelogFromJenkins(fallbackChangelog: String = "",
4527
- includeCommitBody: Bool = true) {
4637
+ includeCommitBody: Bool = true)
4638
+ {
4528
4639
  let command = RubyCommand(commandID: "", methodName: "make_changelog_from_jenkins", className: nil, args: [RubyCommand.Argument(name: "fallback_changelog", value: fallbackChangelog),
4529
4640
  RubyCommand.Argument(name: "include_commit_body", value: includeCommitBody)])
4530
4641
  _ = runner.executeCommand(command)
@@ -4552,6 +4663,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4552
4663
  - cloneBranchDirectly: Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail
4553
4664
  - gitBasicAuthorization: Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64
4554
4665
  - gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure Devops repository), usually a string in Base64
4666
+ - 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
4555
4667
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
4556
4668
  - googleCloudKeysFile: Path to the gc_keys.json file
4557
4669
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
@@ -4566,7 +4678,8 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4566
4678
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
4567
4679
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
4568
4680
  - skipDocs: Skip generation of a README.md for the created git repository
4569
- - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
4681
+ - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
4682
+ - deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
4570
4683
  - 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")
4571
4684
  - profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
4572
4685
  - 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
@@ -4593,6 +4706,7 @@ func match(type: Any = matchfile.type,
4593
4706
  cloneBranchDirectly: Bool = matchfile.cloneBranchDirectly,
4594
4707
  gitBasicAuthorization: Any? = matchfile.gitBasicAuthorization,
4595
4708
  gitBearerAuthorization: Any? = matchfile.gitBearerAuthorization,
4709
+ gitPrivateKey: Any? = matchfile.gitPrivateKey,
4596
4710
  googleCloudBucketName: Any? = matchfile.googleCloudBucketName,
4597
4711
  googleCloudKeysFile: Any? = matchfile.googleCloudKeysFile,
4598
4712
  googleCloudProjectId: Any? = matchfile.googleCloudProjectId,
@@ -4608,11 +4722,13 @@ func match(type: Any = matchfile.type,
4608
4722
  skipConfirmation: Bool = matchfile.skipConfirmation,
4609
4723
  skipDocs: Bool = matchfile.skipDocs,
4610
4724
  platform: Any = matchfile.platform,
4725
+ deriveCatalystAppIdentifier: Bool = matchfile.deriveCatalystAppIdentifier,
4611
4726
  templateName: Any? = matchfile.templateName,
4612
4727
  profileName: Any? = matchfile.profileName,
4613
4728
  failOnNameTaken: Bool = matchfile.failOnNameTaken,
4614
4729
  outputPath: Any? = matchfile.outputPath,
4615
- verbose: Bool = matchfile.verbose) {
4730
+ verbose: Bool = matchfile.verbose)
4731
+ {
4616
4732
  let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
4617
4733
  RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
4618
4734
  RubyCommand.Argument(name: "readonly", value: readonly),
@@ -4631,6 +4747,7 @@ func match(type: Any = matchfile.type,
4631
4747
  RubyCommand.Argument(name: "clone_branch_directly", value: cloneBranchDirectly),
4632
4748
  RubyCommand.Argument(name: "git_basic_authorization", value: gitBasicAuthorization),
4633
4749
  RubyCommand.Argument(name: "git_bearer_authorization", value: gitBearerAuthorization),
4750
+ RubyCommand.Argument(name: "git_private_key", value: gitPrivateKey),
4634
4751
  RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
4635
4752
  RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
4636
4753
  RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
@@ -4646,6 +4763,7 @@ func match(type: Any = matchfile.type,
4646
4763
  RubyCommand.Argument(name: "skip_confirmation", value: skipConfirmation),
4647
4764
  RubyCommand.Argument(name: "skip_docs", value: skipDocs),
4648
4765
  RubyCommand.Argument(name: "platform", value: platform),
4766
+ RubyCommand.Argument(name: "derive_catalyst_app_identifier", value: deriveCatalystAppIdentifier),
4649
4767
  RubyCommand.Argument(name: "template_name", value: templateName),
4650
4768
  RubyCommand.Argument(name: "profile_name", value: profileName),
4651
4769
  RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
@@ -4681,7 +4799,8 @@ func modifyServices(username: String,
4681
4799
  appIdentifier: String,
4682
4800
  services: [String: Any] = [:],
4683
4801
  teamId: String? = nil,
4684
- teamName: String? = nil) {
4802
+ teamName: String? = nil)
4803
+ {
4685
4804
  let command = RubyCommand(commandID: "", methodName: "modify_services", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
4686
4805
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
4687
4806
  RubyCommand.Argument(name: "services", value: services),
@@ -4728,7 +4847,8 @@ func nexusUpload(file: String,
4728
4847
  proxyUsername: String? = nil,
4729
4848
  proxyPassword: String? = nil,
4730
4849
  proxyAddress: String? = nil,
4731
- proxyPort: String? = nil) {
4850
+ proxyPort: String? = nil)
4851
+ {
4732
4852
  let command = RubyCommand(commandID: "", methodName: "nexus_upload", className: nil, args: [RubyCommand.Argument(name: "file", value: file),
4733
4853
  RubyCommand.Argument(name: "repo_id", value: repoId),
4734
4854
  RubyCommand.Argument(name: "repo_group_id", value: repoGroupId),
@@ -4767,7 +4887,8 @@ func notarize(package: String,
4767
4887
  username: String,
4768
4888
  ascProvider: String? = nil,
4769
4889
  printLog: Bool = false,
4770
- verbose: Bool = false) {
4890
+ verbose: Bool = false)
4891
+ {
4771
4892
  let command = RubyCommand(commandID: "", methodName: "notarize", className: nil, args: [RubyCommand.Argument(name: "package", value: package),
4772
4893
  RubyCommand.Argument(name: "try_early_stapling", value: tryEarlyStapling),
4773
4894
  RubyCommand.Argument(name: "bundle_id", value: bundleId),
@@ -4800,7 +4921,8 @@ func notification(title: String = "fastlane",
4800
4921
  appIcon: String? = nil,
4801
4922
  contentImage: String? = nil,
4802
4923
  open: String? = nil,
4803
- execute: String? = nil) {
4924
+ execute: String? = nil)
4925
+ {
4804
4926
  let command = RubyCommand(commandID: "", methodName: "notification", className: nil, args: [RubyCommand.Argument(name: "title", value: title),
4805
4927
  RubyCommand.Argument(name: "subtitle", value: subtitle),
4806
4928
  RubyCommand.Argument(name: "message", value: message),
@@ -4879,7 +5001,8 @@ func oclint(oclintPath: String = "oclint",
4879
5001
  enableClangStaticAnalyzer: Bool = false,
4880
5002
  enableGlobalAnalysis: Bool = false,
4881
5003
  allowDuplicatedViolations: Bool = false,
4882
- extraArg: String? = nil) {
5004
+ extraArg: String? = nil)
5005
+ {
4883
5006
  let command = RubyCommand(commandID: "", methodName: "oclint", className: nil, args: [RubyCommand.Argument(name: "oclint_path", value: oclintPath),
4884
5007
  RubyCommand.Argument(name: "compile_commands", value: compileCommands),
4885
5008
  RubyCommand.Argument(name: "select_reqex", value: selectReqex),
@@ -4924,7 +5047,8 @@ func onesignal(appId: String? = nil,
4924
5047
  androidGcmSenderId: String? = nil,
4925
5048
  apnsP12: String? = nil,
4926
5049
  apnsP12Password: String? = nil,
4927
- apnsEnv: String = "production") {
5050
+ apnsEnv: String = "production")
5051
+ {
4928
5052
  let command = RubyCommand(commandID: "", methodName: "onesignal", className: nil, args: [RubyCommand.Argument(name: "app_id", value: appId),
4929
5053
  RubyCommand.Argument(name: "auth_token", value: authToken),
4930
5054
  RubyCommand.Argument(name: "app_name", value: appName),
@@ -5002,7 +5126,8 @@ func pem(development: Bool = false,
5002
5126
  p12Password: String,
5003
5127
  pemName: String? = nil,
5004
5128
  outputPath: String = ".",
5005
- newProfile: Any? = nil) {
5129
+ newProfile: Any? = nil)
5130
+ {
5006
5131
  let command = RubyCommand(commandID: "", methodName: "pem", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
5007
5132
  RubyCommand.Argument(name: "website_push", value: websitePush),
5008
5133
  RubyCommand.Argument(name: "generate_p12", value: generateP12),
@@ -5035,7 +5160,7 @@ func pem(development: Bool = false,
5035
5160
  - betaAppDescription: Provide the 'Beta App Description' when uploading a new build
5036
5161
  - betaAppFeedbackEmail: Provide the beta app email when uploading a new build
5037
5162
  - localizedBuildInfo: Localized beta app test info for what's new
5038
- - changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
5163
+ - changelog: Provide the 'What to Test' text when uploading a new build
5039
5164
  - skipSubmission: Skip the distributing action of pilot and only upload the ipa file
5040
5165
  - skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
5041
5166
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
@@ -5095,7 +5220,8 @@ func pilot(username: String,
5095
5220
  itcProvider: String? = nil,
5096
5221
  waitProcessingInterval: Int = 30,
5097
5222
  waitForUploadedBuild: Bool = false,
5098
- rejectBuildWaitingForReview: Bool = false) {
5223
+ rejectBuildWaitingForReview: Bool = false)
5224
+ {
5099
5225
  let command = RubyCommand(commandID: "", methodName: "pilot", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
5100
5226
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5101
5227
  RubyCommand.Argument(name: "app_platform", value: appPlatform),
@@ -5143,7 +5269,8 @@ func pilot(username: String,
5143
5269
  */
5144
5270
  func pluginScores(outputPath: String,
5145
5271
  templatePath: String,
5146
- cachePath: String) {
5272
+ cachePath: String)
5273
+ {
5147
5274
  let command = RubyCommand(commandID: "", methodName: "plugin_scores", className: nil, args: [RubyCommand.Argument(name: "output_path", value: outputPath),
5148
5275
  RubyCommand.Argument(name: "template_path", value: templatePath),
5149
5276
  RubyCommand.Argument(name: "cache_path", value: cachePath)])
@@ -5196,7 +5323,8 @@ func podLibLint(useBundleExec: Bool = true,
5196
5323
  platforms: String? = nil,
5197
5324
  skipImportValidation: Bool = false,
5198
5325
  skipTests: Bool = false,
5199
- analyze: Bool = false) {
5326
+ analyze: Bool = false)
5327
+ {
5200
5328
  let command = RubyCommand(commandID: "", methodName: "pod_lib_lint", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
5201
5329
  RubyCommand.Argument(name: "podspec", value: podspec),
5202
5330
  RubyCommand.Argument(name: "verbose", value: verbose),
@@ -5248,7 +5376,8 @@ func podPush(useBundleExec: Bool = false,
5248
5376
  skipTests: Bool? = nil,
5249
5377
  verbose: Bool = false,
5250
5378
  useModularHeaders: Bool? = nil,
5251
- synchronous: Bool? = nil) {
5379
+ synchronous: Bool? = nil)
5380
+ {
5252
5381
  let command = RubyCommand(commandID: "", methodName: "pod_push", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
5253
5382
  RubyCommand.Argument(name: "path", value: path),
5254
5383
  RubyCommand.Argument(name: "repo", value: repo),
@@ -5286,7 +5415,8 @@ func podioItem(clientId: String,
5286
5415
  appToken: String,
5287
5416
  identifyingField: String,
5288
5417
  identifyingValue: String,
5289
- otherFields: [String: Any]? = nil) {
5418
+ otherFields: [String: Any]? = nil)
5419
+ {
5290
5420
  let command = RubyCommand(commandID: "", methodName: "podio_item", className: nil, args: [RubyCommand.Argument(name: "client_id", value: clientId),
5291
5421
  RubyCommand.Argument(name: "client_secret", value: clientSecret),
5292
5422
  RubyCommand.Argument(name: "app_id", value: appId),
@@ -5319,7 +5449,8 @@ func precheck(appIdentifier: Any = precheckfile.appIdentifier,
5319
5449
  teamName: Any? = precheckfile.teamName,
5320
5450
  defaultRuleLevel: Any = precheckfile.defaultRuleLevel,
5321
5451
  includeInAppPurchases: Bool = precheckfile.includeInAppPurchases,
5322
- freeStuffInIap: Any? = precheckfile.freeStuffInIap) {
5452
+ freeStuffInIap: Any? = precheckfile.freeStuffInIap)
5453
+ {
5323
5454
  let command = RubyCommand(commandID: "", methodName: "precheck", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5324
5455
  RubyCommand.Argument(name: "username", value: username),
5325
5456
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -5386,7 +5517,8 @@ func produce(username: String,
5386
5517
  teamId: String? = nil,
5387
5518
  teamName: String? = nil,
5388
5519
  itcTeamId: Any? = nil,
5389
- itcTeamName: String? = nil) {
5520
+ itcTeamName: String? = nil)
5521
+ {
5390
5522
  let command = RubyCommand(commandID: "", methodName: "produce", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
5391
5523
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
5392
5524
  RubyCommand.Argument(name: "bundle_identifier_suffix", value: bundleIdentifierSuffix),
@@ -5427,7 +5559,8 @@ func produce(username: String,
5427
5559
  ciInput: String = "",
5428
5560
  boolean: Bool = false,
5429
5561
  secureText: Bool = false,
5430
- multiLineEndKeyword: String? = nil) -> String {
5562
+ multiLineEndKeyword: String? = nil) -> String
5563
+ {
5431
5564
  let command = RubyCommand(commandID: "", methodName: "prompt", className: nil, args: [RubyCommand.Argument(name: "text", value: text),
5432
5565
  RubyCommand.Argument(name: "ci_input", value: ciInput),
5433
5566
  RubyCommand.Argument(name: "boolean", value: boolean),
@@ -5448,7 +5581,8 @@ func produce(username: String,
5448
5581
  */
5449
5582
  func pushGitTags(force: Bool = false,
5450
5583
  remote: String = "origin",
5451
- tag: String? = nil) {
5584
+ tag: String? = nil)
5585
+ {
5452
5586
  let command = RubyCommand(commandID: "", methodName: "push_git_tags", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
5453
5587
  RubyCommand.Argument(name: "remote", value: remote),
5454
5588
  RubyCommand.Argument(name: "tag", value: tag)])
@@ -5478,7 +5612,8 @@ func pushToGitRemote(localBranch: String? = nil,
5478
5612
  tags: Bool = true,
5479
5613
  remote: String = "origin",
5480
5614
  noVerify: Bool = false,
5481
- setUpstream: Bool = false) {
5615
+ setUpstream: Bool = false)
5616
+ {
5482
5617
  let command = RubyCommand(commandID: "", methodName: "push_to_git_remote", className: nil, args: [RubyCommand.Argument(name: "local_branch", value: localBranch),
5483
5618
  RubyCommand.Argument(name: "remote_branch", value: remoteBranch),
5484
5619
  RubyCommand.Argument(name: "force", value: force),
@@ -5543,7 +5678,8 @@ func recreateSchemes(project: String) {
5543
5678
  udid: String,
5544
5679
  teamId: String? = nil,
5545
5680
  teamName: String? = nil,
5546
- username: String) -> String {
5681
+ username: String) -> String
5682
+ {
5547
5683
  let command = RubyCommand(commandID: "", methodName: "register_device", className: nil, args: [RubyCommand.Argument(name: "name", value: name),
5548
5684
  RubyCommand.Argument(name: "udid", value: udid),
5549
5685
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -5572,7 +5708,8 @@ func registerDevices(devices: [String: Any]? = nil,
5572
5708
  teamId: String? = nil,
5573
5709
  teamName: String? = nil,
5574
5710
  username: String,
5575
- platform: String = "ios") {
5711
+ platform: String = "ios")
5712
+ {
5576
5713
  let command = RubyCommand(commandID: "", methodName: "register_devices", className: nil, args: [RubyCommand.Argument(name: "devices", value: devices),
5577
5714
  RubyCommand.Argument(name: "devices_file", value: devicesFile),
5578
5715
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -5603,7 +5740,8 @@ func resetGitRepo(files: Any? = nil,
5603
5740
  force: Bool = false,
5604
5741
  skipClean: Bool = false,
5605
5742
  disregardGitignore: Bool = true,
5606
- exclude: Any? = nil) {
5743
+ exclude: Any? = nil)
5744
+ {
5607
5745
  let command = RubyCommand(commandID: "", methodName: "reset_git_repo", className: nil, args: [RubyCommand.Argument(name: "files", value: files),
5608
5746
  RubyCommand.Argument(name: "force", value: force),
5609
5747
  RubyCommand.Argument(name: "skip_clean", value: skipClean),
@@ -5620,7 +5758,8 @@ func resetGitRepo(files: Any? = nil,
5620
5758
  - osVersions: Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators
5621
5759
  */
5622
5760
  func resetSimulatorContents(ios: [String]? = nil,
5623
- osVersions: [String]? = nil) {
5761
+ osVersions: [String]? = nil)
5762
+ {
5624
5763
  let command = RubyCommand(commandID: "", methodName: "reset_simulator_contents", className: nil, args: [RubyCommand.Argument(name: "ios", value: ios),
5625
5764
  RubyCommand.Argument(name: "os_versions", value: osVersions)])
5626
5765
  _ = runner.executeCommand(command)
@@ -5652,7 +5791,8 @@ func resign(ipa: String,
5652
5791
  bundleVersion: String? = nil,
5653
5792
  bundleId: String? = nil,
5654
5793
  useAppEntitlements: Any? = nil,
5655
- keychainPath: String? = nil) {
5794
+ keychainPath: String? = nil)
5795
+ {
5656
5796
  let command = RubyCommand(commandID: "", methodName: "resign", className: nil, args: [RubyCommand.Argument(name: "ipa", value: ipa),
5657
5797
  RubyCommand.Argument(name: "signing_identity", value: signingIdentity),
5658
5798
  RubyCommand.Argument(name: "entitlements", value: entitlements),
@@ -5707,7 +5847,8 @@ func rspec() {
5707
5847
  */
5708
5848
  func rsync(extra: String = "-av",
5709
5849
  source: String,
5710
- destination: String) {
5850
+ destination: String)
5851
+ {
5711
5852
  let command = RubyCommand(commandID: "", methodName: "rsync", className: nil, args: [RubyCommand.Argument(name: "extra", value: extra),
5712
5853
  RubyCommand.Argument(name: "source", value: source),
5713
5854
  RubyCommand.Argument(name: "destination", value: destination)])
@@ -5865,7 +6006,8 @@ func runTests(workspace: String? = nil,
5865
6006
  customReportFileName: String? = nil,
5866
6007
  xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
5867
6008
  clonedSourcePackagesPath: String? = nil,
5868
- failBuild: Bool = true) {
6009
+ failBuild: Bool = true)
6010
+ {
5869
6011
  let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
5870
6012
  RubyCommand.Argument(name: "project", value: project),
5871
6013
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -5972,7 +6114,8 @@ func s3(ipa: String? = nil,
5972
6114
  region: String? = nil,
5973
6115
  path: String = "v{CFBundleShortVersionString}_b{CFBundleVersion}/",
5974
6116
  source: String? = nil,
5975
- acl: String = "public_read") {
6117
+ acl: String = "public_read")
6118
+ {
5976
6119
  let command = RubyCommand(commandID: "", methodName: "s3", className: nil, args: [RubyCommand.Argument(name: "ipa", value: ipa),
5977
6120
  RubyCommand.Argument(name: "dsym", value: dsym),
5978
6121
  RubyCommand.Argument(name: "upload_metadata", value: uploadMetadata),
@@ -6000,7 +6143,8 @@ func s3(ipa: String? = nil,
6000
6143
  - mute: If say should be muted with text printed out
6001
6144
  */
6002
6145
  func say(text: Any,
6003
- mute: Bool = false) {
6146
+ mute: Bool = false)
6147
+ {
6004
6148
  let command = RubyCommand(commandID: "", methodName: "say", className: nil, args: [RubyCommand.Argument(name: "text", value: text),
6005
6149
  RubyCommand.Argument(name: "mute", value: mute)])
6006
6150
  _ = runner.executeCommand(command)
@@ -6138,7 +6282,8 @@ func scan(workspace: Any? = scanfile.workspace,
6138
6282
  customReportFileName: Any? = scanfile.customReportFileName,
6139
6283
  xcodebuildCommand: Any = scanfile.xcodebuildCommand,
6140
6284
  clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
6141
- failBuild: Bool = scanfile.failBuild) {
6285
+ failBuild: Bool = scanfile.failBuild)
6286
+ {
6142
6287
  let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
6143
6288
  RubyCommand.Argument(name: "project", value: project),
6144
6289
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -6221,7 +6366,8 @@ func scp(username: String,
6221
6366
  host: String,
6222
6367
  port: String = "22",
6223
6368
  upload: [String: Any]? = nil,
6224
- download: [String: Any]? = nil) {
6369
+ download: [String: Any]? = nil)
6370
+ {
6225
6371
  let command = RubyCommand(commandID: "", methodName: "scp", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
6226
6372
  RubyCommand.Argument(name: "password", value: password),
6227
6373
  RubyCommand.Argument(name: "host", value: host),
@@ -6279,7 +6425,8 @@ func screengrab(androidHome: Any? = screengrabfile.androidHome,
6279
6425
  exitOnTestFailure: Bool = screengrabfile.exitOnTestFailure,
6280
6426
  reinstallApp: Bool = screengrabfile.reinstallApp,
6281
6427
  useTimestampSuffix: Bool = screengrabfile.useTimestampSuffix,
6282
- adbHost: Any? = screengrabfile.adbHost) {
6428
+ adbHost: Any? = screengrabfile.adbHost)
6429
+ {
6283
6430
  let command = RubyCommand(commandID: "", methodName: "screengrab", className: nil, args: [RubyCommand.Argument(name: "android_home", value: androidHome),
6284
6431
  RubyCommand.Argument(name: "build_tools_version", value: buildToolsVersion),
6285
6432
  RubyCommand.Argument(name: "locales", value: locales),
@@ -6317,7 +6464,8 @@ func screengrab(androidHome: Any? = screengrabfile.androidHome,
6317
6464
  There is an option, `:use_hg_revision_number`, which allows to use mercurial revision number instead of hash.
6318
6465
  */
6319
6466
  func setBuildNumberRepository(useHgRevisionNumber: Bool = false,
6320
- xcodeproj: String? = nil) {
6467
+ xcodeproj: String? = nil)
6468
+ {
6321
6469
  let command = RubyCommand(commandID: "", methodName: "set_build_number_repository", className: nil, args: [RubyCommand.Argument(name: "use_hg_revision_number", value: useHgRevisionNumber),
6322
6470
  RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
6323
6471
  _ = runner.executeCommand(command)
@@ -6345,7 +6493,8 @@ func setChangelog(appIdentifier: String,
6345
6493
  changelog: String? = nil,
6346
6494
  teamId: Any? = nil,
6347
6495
  teamName: String? = nil,
6348
- platform: String = "ios") {
6496
+ platform: String = "ios")
6497
+ {
6349
6498
  let command = RubyCommand(commandID: "", methodName: "set_changelog", className: nil, args: [RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
6350
6499
  RubyCommand.Argument(name: "username", value: username),
6351
6500
  RubyCommand.Argument(name: "version", value: version),
@@ -6387,7 +6536,8 @@ func setChangelog(appIdentifier: String,
6387
6536
  description: String? = nil,
6388
6537
  isDraft: Bool = false,
6389
6538
  isPrerelease: Bool = false,
6390
- uploadAssets: [String]? = nil) -> [String: Any] {
6539
+ uploadAssets: [String]? = nil) -> [String: Any]
6540
+ {
6391
6541
  let command = RubyCommand(commandID: "", methodName: "set_github_release", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
6392
6542
  RubyCommand.Argument(name: "server_url", value: serverUrl),
6393
6543
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -6415,7 +6565,8 @@ func setInfoPlistValue(key: String,
6415
6565
  subkey: String? = nil,
6416
6566
  value: Any,
6417
6567
  path: String,
6418
- outputFileName: String? = nil) {
6568
+ outputFileName: String? = nil)
6569
+ {
6419
6570
  let command = RubyCommand(commandID: "", methodName: "set_info_plist_value", className: nil, args: [RubyCommand.Argument(name: "key", value: key),
6420
6571
  RubyCommand.Argument(name: "subkey", value: subkey),
6421
6572
  RubyCommand.Argument(name: "value", value: value),
@@ -6438,7 +6589,8 @@ func setInfoPlistValue(key: String,
6438
6589
  func setPodKey(useBundleExec: Bool = true,
6439
6590
  key: String,
6440
6591
  value: String,
6441
- project: String? = nil) {
6592
+ project: String? = nil)
6593
+ {
6442
6594
  let command = RubyCommand(commandID: "", methodName: "set_pod_key", className: nil, args: [RubyCommand.Argument(name: "use_bundle_exec", value: useBundleExec),
6443
6595
  RubyCommand.Argument(name: "key", value: key),
6444
6596
  RubyCommand.Argument(name: "value", value: value),
@@ -6460,7 +6612,8 @@ func setPodKey(useBundleExec: Bool = true,
6460
6612
  This action helps with CI integration. Add this to the top of your Fastfile if you use CI.
6461
6613
  */
6462
6614
  func setupCi(force: Bool = false,
6463
- provider: String? = nil) {
6615
+ provider: String? = nil)
6616
+ {
6464
6617
  let command = RubyCommand(commandID: "", methodName: "setup_ci", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
6465
6618
  RubyCommand.Argument(name: "provider", value: provider)])
6466
6619
  _ = runner.executeCommand(command)
@@ -6520,7 +6673,8 @@ func setupJenkins(force: Bool = false,
6520
6673
  codeSigningIdentity: String? = nil,
6521
6674
  outputDirectory: String = "./output",
6522
6675
  derivedDataPath: String = "./derivedData",
6523
- resultBundle: Bool = true) {
6676
+ resultBundle: Bool = true)
6677
+ {
6524
6678
  let command = RubyCommand(commandID: "", methodName: "setup_jenkins", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
6525
6679
  RubyCommand.Argument(name: "unlock_keychain", value: unlockKeychain),
6526
6680
  RubyCommand.Argument(name: "add_keychain_to_search_list", value: addKeychainToSearchList),
@@ -6565,7 +6719,8 @@ func setupTravis(force: Bool = false) {
6565
6719
  */
6566
6720
  @discardableResult func sh(command: String,
6567
6721
  log: Bool = true,
6568
- errorCallback: ((String) -> Void)? = nil) -> String {
6722
+ errorCallback: ((String) -> Void)? = nil) -> String
6723
+ {
6569
6724
  let command = RubyCommand(commandID: "", methodName: "sh", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
6570
6725
  RubyCommand.Argument(name: "log", value: log),
6571
6726
  RubyCommand.Argument(name: "error_callback", value: errorCallback, type: .stringClosure)])
@@ -6593,7 +6748,7 @@ func setupTravis(force: Bool = false) {
6593
6748
  - filename: Filename to use for the generated provisioning profile (must include .mobileprovision)
6594
6749
  - skipFetchProfiles: Skips the verification of existing profiles which is useful if you have thousands of profiles
6595
6750
  - skipCertificateVerification: Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine
6596
- - platform: Set the provisioning profile's platform (i.e. ios, tvos)
6751
+ - platform: Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst)
6597
6752
  - readonly: Only fetch existing profile, don't generate new ones
6598
6753
  - 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")
6599
6754
  - 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
@@ -6622,7 +6777,8 @@ func sigh(adhoc: Bool = false,
6622
6777
  platform: Any = "ios",
6623
6778
  readonly: Bool = false,
6624
6779
  templateName: String? = nil,
6625
- failOnNameTaken: Bool = false) {
6780
+ failOnNameTaken: Bool = false)
6781
+ {
6626
6782
  let command = RubyCommand(commandID: "", methodName: "sigh", className: nil, args: [RubyCommand.Argument(name: "adhoc", value: adhoc),
6627
6783
  RubyCommand.Argument(name: "developer_id", value: developerId),
6628
6784
  RubyCommand.Argument(name: "development", value: development),
@@ -6689,7 +6845,8 @@ func slack(message: String? = nil,
6689
6845
  attachmentProperties: [String: Any] = [:],
6690
6846
  success: Bool = true,
6691
6847
  failOnError: Bool = true,
6692
- linkNames: Bool = false) {
6848
+ linkNames: Bool = false)
6849
+ {
6693
6850
  let command = RubyCommand(commandID: "", methodName: "slack", className: nil, args: [RubyCommand.Argument(name: "message", value: message),
6694
6851
  RubyCommand.Argument(name: "pretext", value: pretext),
6695
6852
  RubyCommand.Argument(name: "channel", value: channel),
@@ -6736,7 +6893,8 @@ func slackTrainCrash() {
6736
6893
  func slackTrainStart(distance: Int = 5,
6737
6894
  train: String = "🚝",
6738
6895
  rail: String = "=",
6739
- reverseDirection: Bool = false) {
6896
+ reverseDirection: Bool = false)
6897
+ {
6740
6898
  let command = RubyCommand(commandID: "", methodName: "slack_train_start", className: nil, args: [RubyCommand.Argument(name: "distance", value: distance),
6741
6899
  RubyCommand.Argument(name: "train", value: train),
6742
6900
  RubyCommand.Argument(name: "rail", value: rail),
@@ -6813,7 +6971,8 @@ func slather(buildDirectory: String? = nil,
6813
6971
  binaryFile: [String]? = nil,
6814
6972
  arch: String? = nil,
6815
6973
  sourceFiles: Bool = false,
6816
- decimals: Bool = false) {
6974
+ decimals: Bool = false)
6975
+ {
6817
6976
  let command = RubyCommand(commandID: "", methodName: "slather", className: nil, args: [RubyCommand.Argument(name: "build_directory", value: buildDirectory),
6818
6977
  RubyCommand.Argument(name: "proj", value: proj),
6819
6978
  RubyCommand.Argument(name: "workspace", value: workspace),
@@ -6867,6 +7026,7 @@ func slather(buildDirectory: String? = nil,
6867
7026
  - clearPreviousScreenshots: Enabling this option will automatically clear previously generated screenshots before running snapshot
6868
7027
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
6869
7028
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
7029
+ - headless: Enabling this option will prevent displaying the simulator window
6870
7030
  - overrideStatusBar: Enabling this option wil automatically override the status bar to show 9:41 AM, full battery, and full reception
6871
7031
  - localizeSimulator: Enabling this option will configure the Simulator's system language
6872
7032
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
@@ -6894,6 +7054,7 @@ func slather(buildDirectory: String? = nil,
6894
7054
  - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run
6895
7055
  - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip
6896
7056
  - disableXcpretty: Disable xcpretty formatting of build
7057
+ - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
6897
7058
  */
6898
7059
  func snapshot(workspace: Any? = snapshotfile.workspace,
6899
7060
  project: Any? = snapshotfile.project,
@@ -6910,6 +7071,7 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6910
7071
  clearPreviousScreenshots: Bool = snapshotfile.clearPreviousScreenshots,
6911
7072
  reinstallApp: Bool = snapshotfile.reinstallApp,
6912
7073
  eraseSimulator: Bool = snapshotfile.eraseSimulator,
7074
+ headless: Bool = snapshotfile.headless,
6913
7075
  overrideStatusBar: Bool = snapshotfile.overrideStatusBar,
6914
7076
  localizeSimulator: Bool = snapshotfile.localizeSimulator,
6915
7077
  darkMode: Bool? = snapshotfile.darkMode,
@@ -6936,7 +7098,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6936
7098
  testplan: Any? = snapshotfile.testplan,
6937
7099
  onlyTesting: Any? = snapshotfile.onlyTesting,
6938
7100
  skipTesting: Any? = snapshotfile.skipTesting,
6939
- disableXcpretty: Bool? = snapshotfile.disableXcpretty) {
7101
+ disableXcpretty: Bool? = snapshotfile.disableXcpretty,
7102
+ suppressXcodeOutput: Bool? = snapshotfile.suppressXcodeOutput)
7103
+ {
6940
7104
  let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
6941
7105
  RubyCommand.Argument(name: "project", value: project),
6942
7106
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -6952,6 +7116,7 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6952
7116
  RubyCommand.Argument(name: "clear_previous_screenshots", value: clearPreviousScreenshots),
6953
7117
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
6954
7118
  RubyCommand.Argument(name: "erase_simulator", value: eraseSimulator),
7119
+ RubyCommand.Argument(name: "headless", value: headless),
6955
7120
  RubyCommand.Argument(name: "override_status_bar", value: overrideStatusBar),
6956
7121
  RubyCommand.Argument(name: "localize_simulator", value: localizeSimulator),
6957
7122
  RubyCommand.Argument(name: "dark_mode", value: darkMode),
@@ -6978,7 +7143,8 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6978
7143
  RubyCommand.Argument(name: "testplan", value: testplan),
6979
7144
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
6980
7145
  RubyCommand.Argument(name: "skip_testing", value: skipTesting),
6981
- RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty)])
7146
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
7147
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput)])
6982
7148
  _ = runner.executeCommand(command)
6983
7149
  }
6984
7150
 
@@ -7021,7 +7187,8 @@ func sonar(projectConfigurationPath: String? = nil,
7021
7187
  branchName: String? = nil,
7022
7188
  pullRequestBranch: String? = nil,
7023
7189
  pullRequestBase: String? = nil,
7024
- pullRequestKey: String? = nil) {
7190
+ pullRequestKey: String? = nil)
7191
+ {
7025
7192
  let command = RubyCommand(commandID: "", methodName: "sonar", className: nil, args: [RubyCommand.Argument(name: "project_configuration_path", value: projectConfigurationPath),
7026
7193
  RubyCommand.Argument(name: "project_key", value: projectKey),
7027
7194
  RubyCommand.Argument(name: "project_name", value: projectName),
@@ -7056,7 +7223,8 @@ func spaceshipLogs(latest: Bool = true,
7056
7223
  printContents: Bool = false,
7057
7224
  printPaths: Bool = false,
7058
7225
  copyToPath: String? = nil,
7059
- copyToClipboard: Bool = false) {
7226
+ copyToClipboard: Bool = false)
7227
+ {
7060
7228
  let command = RubyCommand(commandID: "", methodName: "spaceship_logs", className: nil, args: [RubyCommand.Argument(name: "latest", value: latest),
7061
7229
  RubyCommand.Argument(name: "print_contents", value: printContents),
7062
7230
  RubyCommand.Argument(name: "print_paths", value: printPaths),
@@ -7087,7 +7255,8 @@ func splunkmint(dsym: String? = nil,
7087
7255
  proxyUsername: String? = nil,
7088
7256
  proxyPassword: String? = nil,
7089
7257
  proxyAddress: String? = nil,
7090
- proxyPort: String? = nil) {
7258
+ proxyPort: String? = nil)
7259
+ {
7091
7260
  let command = RubyCommand(commandID: "", methodName: "splunkmint", className: nil, args: [RubyCommand.Argument(name: "dsym", value: dsym),
7092
7261
  RubyCommand.Argument(name: "api_key", value: apiKey),
7093
7262
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -7122,7 +7291,8 @@ func spm(command: String = "build",
7122
7291
  disableSandbox: Bool = false,
7123
7292
  xcprettyOutput: String? = nil,
7124
7293
  xcprettyArgs: String? = nil,
7125
- verbose: Bool = false) {
7294
+ verbose: Bool = false)
7295
+ {
7126
7296
  let command = RubyCommand(commandID: "", methodName: "spm", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
7127
7297
  RubyCommand.Argument(name: "build_path", value: buildPath),
7128
7298
  RubyCommand.Argument(name: "package_path", value: packagePath),
@@ -7153,7 +7323,8 @@ func ssh(username: String,
7153
7323
  host: String,
7154
7324
  port: String = "22",
7155
7325
  commands: [String]? = nil,
7156
- log: Bool = true) {
7326
+ log: Bool = true)
7327
+ {
7157
7328
  let command = RubyCommand(commandID: "", methodName: "ssh", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
7158
7329
  RubyCommand.Argument(name: "password", value: password),
7159
7330
  RubyCommand.Argument(name: "host", value: host),
@@ -7202,6 +7373,7 @@ func ssh(username: String,
7202
7373
  - obbMainFileSize: Size of 'main' expansion file in bytes
7203
7374
  - obbPatchReferencesVersion: References version of 'patch' expansion file
7204
7375
  - obbPatchFileSize: Size of 'patch' expansion file in bytes
7376
+ - ackBundleInstallationWarning: Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB
7205
7377
 
7206
7378
  More information: https://docs.fastlane.tools/actions/supply/
7207
7379
  */
@@ -7239,7 +7411,9 @@ func supply(packageName: String,
7239
7411
  obbMainReferencesVersion: String? = nil,
7240
7412
  obbMainFileSize: String? = nil,
7241
7413
  obbPatchReferencesVersion: String? = nil,
7242
- obbPatchFileSize: String? = nil) {
7414
+ obbPatchFileSize: String? = nil,
7415
+ ackBundleInstallationWarning: Bool = false)
7416
+ {
7243
7417
  let command = RubyCommand(commandID: "", methodName: "supply", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
7244
7418
  RubyCommand.Argument(name: "version_name", value: versionName),
7245
7419
  RubyCommand.Argument(name: "version_code", value: versionCode),
@@ -7274,7 +7448,8 @@ func supply(packageName: String,
7274
7448
  RubyCommand.Argument(name: "obb_main_references_version", value: obbMainReferencesVersion),
7275
7449
  RubyCommand.Argument(name: "obb_main_file_size", value: obbMainFileSize),
7276
7450
  RubyCommand.Argument(name: "obb_patch_references_version", value: obbPatchReferencesVersion),
7277
- RubyCommand.Argument(name: "obb_patch_file_size", value: obbPatchFileSize)])
7451
+ RubyCommand.Argument(name: "obb_patch_file_size", value: obbPatchFileSize),
7452
+ RubyCommand.Argument(name: "ack_bundle_installation_warning", value: ackBundleInstallationWarning)])
7278
7453
  _ = runner.executeCommand(command)
7279
7454
  }
7280
7455
 
@@ -7310,7 +7485,8 @@ func swiftlint(mode: Any = "lint",
7310
7485
  executable: String? = nil,
7311
7486
  format: Bool = false,
7312
7487
  noCache: Bool = false,
7313
- compilerLogPath: String? = nil) {
7488
+ compilerLogPath: String? = nil)
7489
+ {
7314
7490
  let command = RubyCommand(commandID: "", methodName: "swiftlint", className: nil, args: [RubyCommand.Argument(name: "mode", value: mode),
7315
7491
  RubyCommand.Argument(name: "path", value: path),
7316
7492
  RubyCommand.Argument(name: "output_file", value: outputFile),
@@ -7350,6 +7526,7 @@ func swiftlint(mode: Any = "lint",
7350
7526
  - cloneBranchDirectly: Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail
7351
7527
  - gitBasicAuthorization: Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64
7352
7528
  - gitBearerAuthorization: Use a bearer authorization header to access the git repo (e.g.: access to an Azure Devops repository), usually a string in Base64
7529
+ - 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
7353
7530
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
7354
7531
  - googleCloudKeysFile: Path to the gc_keys.json file
7355
7532
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
@@ -7364,7 +7541,8 @@ func swiftlint(mode: Any = "lint",
7364
7541
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
7365
7542
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
7366
7543
  - skipDocs: Skip generation of a README.md for the created git repository
7367
- - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
7544
+ - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
7545
+ - deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
7368
7546
  - 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")
7369
7547
  - profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
7370
7548
  - 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
@@ -7391,6 +7569,7 @@ func syncCodeSigning(type: String = "development",
7391
7569
  cloneBranchDirectly: Bool = false,
7392
7570
  gitBasicAuthorization: String? = nil,
7393
7571
  gitBearerAuthorization: String? = nil,
7572
+ gitPrivateKey: String? = nil,
7394
7573
  googleCloudBucketName: String? = nil,
7395
7574
  googleCloudKeysFile: String? = nil,
7396
7575
  googleCloudProjectId: String? = nil,
@@ -7406,11 +7585,13 @@ func syncCodeSigning(type: String = "development",
7406
7585
  skipConfirmation: Bool = false,
7407
7586
  skipDocs: Bool = false,
7408
7587
  platform: String = "ios",
7588
+ deriveCatalystAppIdentifier: Bool = false,
7409
7589
  templateName: String? = nil,
7410
7590
  profileName: String? = nil,
7411
7591
  failOnNameTaken: Bool = false,
7412
7592
  outputPath: String? = nil,
7413
- verbose: Bool = false) {
7593
+ verbose: Bool = false)
7594
+ {
7414
7595
  let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
7415
7596
  RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
7416
7597
  RubyCommand.Argument(name: "readonly", value: readonly),
@@ -7429,6 +7610,7 @@ func syncCodeSigning(type: String = "development",
7429
7610
  RubyCommand.Argument(name: "clone_branch_directly", value: cloneBranchDirectly),
7430
7611
  RubyCommand.Argument(name: "git_basic_authorization", value: gitBasicAuthorization),
7431
7612
  RubyCommand.Argument(name: "git_bearer_authorization", value: gitBearerAuthorization),
7613
+ RubyCommand.Argument(name: "git_private_key", value: gitPrivateKey),
7432
7614
  RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
7433
7615
  RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
7434
7616
  RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
@@ -7444,6 +7626,7 @@ func syncCodeSigning(type: String = "development",
7444
7626
  RubyCommand.Argument(name: "skip_confirmation", value: skipConfirmation),
7445
7627
  RubyCommand.Argument(name: "skip_docs", value: skipDocs),
7446
7628
  RubyCommand.Argument(name: "platform", value: platform),
7629
+ RubyCommand.Argument(name: "derive_catalyst_app_identifier", value: deriveCatalystAppIdentifier),
7447
7630
  RubyCommand.Argument(name: "template_name", value: templateName),
7448
7631
  RubyCommand.Argument(name: "profile_name", value: profileName),
7449
7632
  RubyCommand.Argument(name: "fail_on_name_taken", value: failOnNameTaken),
@@ -7500,7 +7683,8 @@ func testfairy(apiKey: String,
7500
7683
  notify: String = "off",
7501
7684
  options: [String] = [],
7502
7685
  custom: String = "",
7503
- timeout: Int? = nil) {
7686
+ timeout: Int? = nil)
7687
+ {
7504
7688
  let command = RubyCommand(commandID: "", methodName: "testfairy", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
7505
7689
  RubyCommand.Argument(name: "ipa", value: ipa),
7506
7690
  RubyCommand.Argument(name: "apk", value: apk),
@@ -7532,7 +7716,7 @@ func testfairy(apiKey: String,
7532
7716
  - betaAppDescription: Provide the 'Beta App Description' when uploading a new build
7533
7717
  - betaAppFeedbackEmail: Provide the beta app email when uploading a new build
7534
7718
  - localizedBuildInfo: Localized beta app test info for what's new
7535
- - changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
7719
+ - changelog: Provide the 'What to Test' text when uploading a new build
7536
7720
  - skipSubmission: Skip the distributing action of pilot and only upload the ipa file
7537
7721
  - skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
7538
7722
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
@@ -7592,7 +7776,8 @@ func testflight(username: String,
7592
7776
  itcProvider: String? = nil,
7593
7777
  waitProcessingInterval: Int = 30,
7594
7778
  waitForUploadedBuild: Bool = false,
7595
- rejectBuildWaitingForReview: Bool = false) {
7779
+ rejectBuildWaitingForReview: Bool = false)
7780
+ {
7596
7781
  let command = RubyCommand(commandID: "", methodName: "testflight", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
7597
7782
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
7598
7783
  RubyCommand.Argument(name: "app_platform", value: appPlatform),
@@ -7650,7 +7835,8 @@ func tryouts(appId: String,
7650
7835
  notes: String? = nil,
7651
7836
  notesPath: String? = nil,
7652
7837
  notify: Int = 1,
7653
- status: Int = 2) {
7838
+ status: Int = 2)
7839
+ {
7654
7840
  let command = RubyCommand(commandID: "", methodName: "tryouts", className: nil, args: [RubyCommand.Argument(name: "app_id", value: appId),
7655
7841
  RubyCommand.Argument(name: "api_token", value: apiToken),
7656
7842
  RubyCommand.Argument(name: "build_file", value: buildFile),
@@ -7677,7 +7863,8 @@ func twitter(consumerKey: String,
7677
7863
  consumerSecret: String,
7678
7864
  accessToken: String,
7679
7865
  accessTokenSecret: String,
7680
- message: String) {
7866
+ message: String)
7867
+ {
7681
7868
  let command = RubyCommand(commandID: "", methodName: "twitter", className: nil, args: [RubyCommand.Argument(name: "consumer_key", value: consumerKey),
7682
7869
  RubyCommand.Argument(name: "consumer_secret", value: consumerSecret),
7683
7870
  RubyCommand.Argument(name: "access_token", value: accessToken),
@@ -7709,7 +7896,8 @@ func typetalk() {
7709
7896
  func unlockKeychain(path: String = "login",
7710
7897
  password: String,
7711
7898
  addToSearchList: Bool = true,
7712
- setDefault: Bool = false) {
7899
+ setDefault: Bool = false)
7900
+ {
7713
7901
  let command = RubyCommand(commandID: "", methodName: "unlock_keychain", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
7714
7902
  RubyCommand.Argument(name: "password", value: password),
7715
7903
  RubyCommand.Argument(name: "add_to_search_list", value: addToSearchList),
@@ -7727,7 +7915,8 @@ func unlockKeychain(path: String = "login",
7727
7915
  Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build.
7728
7916
  */
7729
7917
  func updateAppGroupIdentifiers(entitlementsFile: String,
7730
- appGroupIdentifiers: Any) {
7918
+ appGroupIdentifiers: Any)
7919
+ {
7731
7920
  let command = RubyCommand(commandID: "", methodName: "update_app_group_identifiers", className: nil, args: [RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile),
7732
7921
  RubyCommand.Argument(name: "app_group_identifiers", value: appGroupIdentifiers)])
7733
7922
  _ = runner.executeCommand(command)
@@ -7745,7 +7934,8 @@ func updateAppGroupIdentifiers(entitlementsFile: String,
7745
7934
  */
7746
7935
  func updateAppIdentifier(xcodeproj: String,
7747
7936
  plistPath: String,
7748
- appIdentifier: String) {
7937
+ appIdentifier: String)
7938
+ {
7749
7939
  let command = RubyCommand(commandID: "", methodName: "update_app_identifier", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
7750
7940
  RubyCommand.Argument(name: "plist_path", value: plistPath),
7751
7941
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier)])
@@ -7778,7 +7968,8 @@ func updateCodeSigningSettings(path: String,
7778
7968
  codeSignIdentity: String? = nil,
7779
7969
  profileName: String? = nil,
7780
7970
  profileUuid: String? = nil,
7781
- bundleIdentifier: String? = nil) {
7971
+ bundleIdentifier: String? = nil)
7972
+ {
7782
7973
  let command = RubyCommand(commandID: "", methodName: "update_code_signing_settings", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
7783
7974
  RubyCommand.Argument(name: "use_automatic_signing", value: useAutomaticSigning),
7784
7975
  RubyCommand.Argument(name: "team_id", value: teamId),
@@ -7814,7 +8005,8 @@ func updateCodeSigningSettings(path: String,
7814
8005
  Recommended usage of the `update_fastlane` action is at the top inside of the `before_all` block, before running any other action.
7815
8006
  */
7816
8007
  func updateFastlane(noUpdate: Bool = false,
7817
- nightly: Bool = false) {
8008
+ nightly: Bool = false)
8009
+ {
7818
8010
  let command = RubyCommand(commandID: "", methodName: "update_fastlane", className: nil, args: [RubyCommand.Argument(name: "no_update", value: noUpdate),
7819
8011
  RubyCommand.Argument(name: "nightly", value: nightly)])
7820
8012
  _ = runner.executeCommand(command)
@@ -7830,7 +8022,8 @@ func updateFastlane(noUpdate: Bool = false,
7830
8022
  Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc.
7831
8023
  */
7832
8024
  func updateIcloudContainerIdentifiers(entitlementsFile: String,
7833
- icloudContainerIdentifiers: Any) {
8025
+ icloudContainerIdentifiers: Any)
8026
+ {
7834
8027
  let command = RubyCommand(commandID: "", methodName: "update_icloud_container_identifiers", className: nil, args: [RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile),
7835
8028
  RubyCommand.Argument(name: "icloud_container_identifiers", value: icloudContainerIdentifiers)])
7836
8029
  _ = runner.executeCommand(command)
@@ -7854,7 +8047,8 @@ func updateInfoPlist(xcodeproj: String? = nil,
7854
8047
  scheme: String? = nil,
7855
8048
  appIdentifier: String? = nil,
7856
8049
  displayName: String? = nil,
7857
- block: Any? = nil) {
8050
+ block: Any? = nil)
8051
+ {
7858
8052
  let command = RubyCommand(commandID: "", methodName: "update_info_plist", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
7859
8053
  RubyCommand.Argument(name: "plist_path", value: plistPath),
7860
8054
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -7874,7 +8068,8 @@ func updateInfoPlist(xcodeproj: String? = nil,
7874
8068
  Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build.
7875
8069
  */
7876
8070
  func updateKeychainAccessGroups(entitlementsFile: String,
7877
- identifiers: Any) {
8071
+ identifiers: Any)
8072
+ {
7878
8073
  let command = RubyCommand(commandID: "", methodName: "update_keychain_access_groups", className: nil, args: [RubyCommand.Argument(name: "entitlements_file", value: entitlementsFile),
7879
8074
  RubyCommand.Argument(name: "identifiers", value: identifiers)])
7880
8075
  _ = runner.executeCommand(command)
@@ -7890,7 +8085,8 @@ func updateKeychainAccessGroups(entitlementsFile: String,
7890
8085
  This action allows you to modify any value inside any `plist` file.
7891
8086
  */
7892
8087
  func updatePlist(plistPath: String? = nil,
7893
- block: Any) {
8088
+ block: Any)
8089
+ {
7894
8090
  let command = RubyCommand(commandID: "", methodName: "update_plist", className: nil, args: [RubyCommand.Argument(name: "plist_path", value: plistPath),
7895
8091
  RubyCommand.Argument(name: "block", value: block)])
7896
8092
  _ = runner.executeCommand(command)
@@ -7906,7 +8102,8 @@ func updatePlist(plistPath: String? = nil,
7906
8102
  */
7907
8103
  func updateProjectCodeSigning(path: String,
7908
8104
  udid: String? = nil,
7909
- uuid: String) {
8105
+ uuid: String)
8106
+ {
7910
8107
  let command = RubyCommand(commandID: "", methodName: "update_project_code_signing", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
7911
8108
  RubyCommand.Argument(name: "udid", value: udid),
7912
8109
  RubyCommand.Argument(name: "uuid", value: uuid)])
@@ -7938,7 +8135,8 @@ func updateProjectProvisioning(xcodeproj: String? = nil,
7938
8135
  buildConfigurationFilter: String? = nil,
7939
8136
  buildConfiguration: Any? = nil,
7940
8137
  certificate: String = "/tmp/AppleIncRootCertificate.cer",
7941
- codeSigningIdentity: String? = nil) {
8138
+ codeSigningIdentity: String? = nil)
8139
+ {
7942
8140
  let command = RubyCommand(commandID: "", methodName: "update_project_provisioning", className: nil, args: [RubyCommand.Argument(name: "xcodeproj", value: xcodeproj),
7943
8141
  RubyCommand.Argument(name: "profile", value: profile),
7944
8142
  RubyCommand.Argument(name: "target_filter", value: targetFilter),
@@ -7961,7 +8159,8 @@ func updateProjectProvisioning(xcodeproj: String? = nil,
7961
8159
  */
7962
8160
  func updateProjectTeam(path: String,
7963
8161
  targets: [String]? = nil,
7964
- teamid: String) {
8162
+ teamid: String)
8163
+ {
7965
8164
  let command = RubyCommand(commandID: "", methodName: "update_project_team", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
7966
8165
  RubyCommand.Argument(name: "targets", value: targets),
7967
8166
  RubyCommand.Argument(name: "teamid", value: teamid)])
@@ -7986,7 +8185,8 @@ func updateUrbanAirshipConfiguration(plistPath: String,
7986
8185
  developmentAppSecret: String? = nil,
7987
8186
  productionAppKey: String? = nil,
7988
8187
  productionAppSecret: String? = nil,
7989
- detectProvisioningMode: Bool? = nil) {
8188
+ detectProvisioningMode: Bool? = nil)
8189
+ {
7990
8190
  let command = RubyCommand(commandID: "", methodName: "update_urban_airship_configuration", className: nil, args: [RubyCommand.Argument(name: "plist_path", value: plistPath),
7991
8191
  RubyCommand.Argument(name: "development_app_key", value: developmentAppKey),
7992
8192
  RubyCommand.Argument(name: "development_app_secret", value: developmentAppSecret),
@@ -8009,7 +8209,8 @@ func updateUrbanAirshipConfiguration(plistPath: String,
8009
8209
  */
8010
8210
  func updateUrlSchemes(path: String,
8011
8211
  urlSchemes: Any? = nil,
8012
- updateUrlSchemes: Any? = nil) {
8212
+ updateUrlSchemes: Any? = nil)
8213
+ {
8013
8214
  let command = RubyCommand(commandID: "", methodName: "update_url_schemes", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
8014
8215
  RubyCommand.Argument(name: "url_schemes", value: urlSchemes),
8015
8216
  RubyCommand.Argument(name: "update_url_schemes", value: updateUrlSchemes)])
@@ -8040,7 +8241,8 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
8040
8241
  binaryPath: String? = nil,
8041
8242
  platform: String = "ios",
8042
8243
  dsymWorkerThreads: Int = 1,
8043
- debug: Bool = false) {
8244
+ debug: Bool = false)
8245
+ {
8044
8246
  let command = RubyCommand(commandID: "", methodName: "upload_symbols_to_crashlytics", className: nil, args: [RubyCommand.Argument(name: "dsym_path", value: dsymPath),
8045
8247
  RubyCommand.Argument(name: "dsym_paths", value: dsymPaths),
8046
8248
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -8075,7 +8277,8 @@ func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/api/0",
8075
8277
  orgSlug: String,
8076
8278
  projectSlug: String,
8077
8279
  dsymPath: String? = nil,
8078
- dsymPaths: Any? = nil) {
8280
+ dsymPaths: Any? = nil)
8281
+ {
8079
8282
  let command = RubyCommand(commandID: "", methodName: "upload_symbols_to_sentry", className: nil, args: [RubyCommand.Argument(name: "api_host", value: apiHost),
8080
8283
  RubyCommand.Argument(name: "api_key", value: apiKey),
8081
8284
  RubyCommand.Argument(name: "auth_token", value: authToken),
@@ -8217,7 +8420,8 @@ func uploadToAppStore(username: String,
8217
8420
  languages: [String]? = nil,
8218
8421
  ignoreLanguageDirectoryValidation: Bool = false,
8219
8422
  precheckIncludeInAppPurchases: Bool = true,
8220
- app: Any) {
8423
+ app: Any)
8424
+ {
8221
8425
  let command = RubyCommand(commandID: "", methodName: "upload_to_app_store", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
8222
8426
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
8223
8427
  RubyCommand.Argument(name: "app_version", value: appVersion),
@@ -8320,6 +8524,7 @@ func uploadToAppStore(username: String,
8320
8524
  - obbMainFileSize: Size of 'main' expansion file in bytes
8321
8525
  - obbPatchReferencesVersion: References version of 'patch' expansion file
8322
8526
  - obbPatchFileSize: Size of 'patch' expansion file in bytes
8527
+ - ackBundleInstallationWarning: Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB
8323
8528
 
8324
8529
  More information: https://docs.fastlane.tools/actions/supply/
8325
8530
  */
@@ -8357,7 +8562,9 @@ func uploadToPlayStore(packageName: String,
8357
8562
  obbMainReferencesVersion: String? = nil,
8358
8563
  obbMainFileSize: String? = nil,
8359
8564
  obbPatchReferencesVersion: String? = nil,
8360
- obbPatchFileSize: String? = nil) {
8565
+ obbPatchFileSize: String? = nil,
8566
+ ackBundleInstallationWarning: Bool = false)
8567
+ {
8361
8568
  let command = RubyCommand(commandID: "", methodName: "upload_to_play_store", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
8362
8569
  RubyCommand.Argument(name: "version_name", value: versionName),
8363
8570
  RubyCommand.Argument(name: "version_code", value: versionCode),
@@ -8392,7 +8599,8 @@ func uploadToPlayStore(packageName: String,
8392
8599
  RubyCommand.Argument(name: "obb_main_references_version", value: obbMainReferencesVersion),
8393
8600
  RubyCommand.Argument(name: "obb_main_file_size", value: obbMainFileSize),
8394
8601
  RubyCommand.Argument(name: "obb_patch_references_version", value: obbPatchReferencesVersion),
8395
- RubyCommand.Argument(name: "obb_patch_file_size", value: obbPatchFileSize)])
8602
+ RubyCommand.Argument(name: "obb_patch_file_size", value: obbPatchFileSize),
8603
+ RubyCommand.Argument(name: "ack_bundle_installation_warning", value: ackBundleInstallationWarning)])
8396
8604
  _ = runner.executeCommand(command)
8397
8605
  }
8398
8606
 
@@ -8422,7 +8630,8 @@ func uploadToPlayStoreInternalAppSharing(packageName: String,
8422
8630
  aab: String? = nil,
8423
8631
  aabPaths: [String]? = nil,
8424
8632
  rootUrl: String? = nil,
8425
- timeout: Int = 300) {
8633
+ timeout: Int = 300)
8634
+ {
8426
8635
  let command = RubyCommand(commandID: "", methodName: "upload_to_play_store_internal_app_sharing", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
8427
8636
  RubyCommand.Argument(name: "json_key", value: jsonKey),
8428
8637
  RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
@@ -8450,7 +8659,7 @@ func uploadToPlayStoreInternalAppSharing(packageName: String,
8450
8659
  - betaAppDescription: Provide the 'Beta App Description' when uploading a new build
8451
8660
  - betaAppFeedbackEmail: Provide the beta app email when uploading a new build
8452
8661
  - localizedBuildInfo: Localized beta app test info for what's new
8453
- - changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
8662
+ - changelog: Provide the 'What to Test' text when uploading a new build
8454
8663
  - skipSubmission: Skip the distributing action of pilot and only upload the ipa file
8455
8664
  - skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
8456
8665
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
@@ -8510,7 +8719,8 @@ func uploadToTestflight(username: String,
8510
8719
  itcProvider: String? = nil,
8511
8720
  waitProcessingInterval: Int = 30,
8512
8721
  waitForUploadedBuild: Bool = false,
8513
- rejectBuildWaitingForReview: Bool = false) {
8722
+ rejectBuildWaitingForReview: Bool = false)
8723
+ {
8514
8724
  let command = RubyCommand(commandID: "", methodName: "upload_to_testflight", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
8515
8725
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
8516
8726
  RubyCommand.Argument(name: "app_platform", value: appPlatform),
@@ -8562,7 +8772,8 @@ func uploadToTestflight(username: String,
8562
8772
  func validatePlayStoreJsonKey(jsonKey: String? = nil,
8563
8773
  jsonKeyData: String? = nil,
8564
8774
  rootUrl: String? = nil,
8565
- timeout: Int = 300) {
8775
+ timeout: Int = 300)
8776
+ {
8566
8777
  let command = RubyCommand(commandID: "", methodName: "validate_play_store_json_key", className: nil, args: [RubyCommand.Argument(name: "json_key", value: jsonKey),
8567
8778
  RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
8568
8779
  RubyCommand.Argument(name: "root_url", value: rootUrl),
@@ -8592,7 +8803,8 @@ func verifyBuild(provisioningType: String? = nil,
8592
8803
  appName: String? = nil,
8593
8804
  bundleIdentifier: String? = nil,
8594
8805
  ipaPath: String? = nil,
8595
- buildPath: String? = nil) {
8806
+ buildPath: String? = nil)
8807
+ {
8596
8808
  let command = RubyCommand(commandID: "", methodName: "verify_build", className: nil, args: [RubyCommand.Argument(name: "provisioning_type", value: provisioningType),
8597
8809
  RubyCommand.Argument(name: "provisioning_uuid", value: provisioningUuid),
8598
8810
  RubyCommand.Argument(name: "team_identifier", value: teamIdentifier),
@@ -8645,7 +8857,8 @@ func versionBumpPodspec(path: String,
8645
8857
  bumpType: String = "patch",
8646
8858
  versionNumber: String? = nil,
8647
8859
  versionAppendix: String? = nil,
8648
- requireVariablePrefix: Bool = true) {
8860
+ requireVariablePrefix: Bool = true)
8861
+ {
8649
8862
  let command = RubyCommand(commandID: "", methodName: "version_bump_podspec", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
8650
8863
  RubyCommand.Argument(name: "bump_type", value: bumpType),
8651
8864
  RubyCommand.Argument(name: "version_number", value: versionNumber),
@@ -8662,7 +8875,8 @@ func versionBumpPodspec(path: String,
8662
8875
  - requireVariablePrefix: true by default, this is used for non CocoaPods version bumps only
8663
8876
  */
8664
8877
  func versionGetPodspec(path: String,
8665
- requireVariablePrefix: Bool = true) {
8878
+ requireVariablePrefix: Bool = true)
8879
+ {
8666
8880
  let command = RubyCommand(commandID: "", methodName: "version_get_podspec", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
8667
8881
  RubyCommand.Argument(name: "require_variable_prefix", value: requireVariablePrefix)])
8668
8882
  _ = runner.executeCommand(command)
@@ -8714,7 +8928,8 @@ func xcexport() {
8714
8928
  */
8715
8929
  @discardableResult func xcodeInstall(version: String,
8716
8930
  username: String,
8717
- teamId: String? = nil) -> String {
8931
+ teamId: String? = nil) -> String
8932
+ {
8718
8933
  let command = RubyCommand(commandID: "", methodName: "xcode_install", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
8719
8934
  RubyCommand.Argument(name: "username", value: username),
8720
8935
  RubyCommand.Argument(name: "team_id", value: teamId)])
@@ -8758,7 +8973,8 @@ func xcodeSelect() {
8758
8973
  password: String? = nil,
8759
8974
  targetFolder: String = "./xcs_assets",
8760
8975
  keepAllAssets: Bool = false,
8761
- trustSelfSignedCerts: Bool = true) -> [String] {
8976
+ trustSelfSignedCerts: Bool = true) -> [String]
8977
+ {
8762
8978
  let command = RubyCommand(commandID: "", methodName: "xcode_server_get_assets", className: nil, args: [RubyCommand.Argument(name: "host", value: host),
8763
8979
  RubyCommand.Argument(name: "bot_name", value: botName),
8764
8980
  RubyCommand.Argument(name: "integration_number", value: integrationNumber),
@@ -8843,7 +9059,8 @@ func xcov(workspace: String? = nil,
8843
9059
  coverallsRepoToken: String? = nil,
8844
9060
  xcconfig: String? = nil,
8845
9061
  ideFoundationPath: String = "/Applications/Xcode-11.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8846
- legacySupport: Bool = false) {
9062
+ legacySupport: Bool = false)
9063
+ {
8847
9064
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
8848
9065
  RubyCommand.Argument(name: "project", value: project),
8849
9066
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -8923,7 +9140,8 @@ func xcversion(version: String) {
8923
9140
  outputPath: String? = nil,
8924
9141
  verbose: Bool = true,
8925
9142
  password: String? = nil,
8926
- symlinks: Bool = false) -> String {
9143
+ symlinks: Bool = false) -> String
9144
+ {
8927
9145
  let command = RubyCommand(commandID: "", methodName: "zip", className: nil, args: [RubyCommand.Argument(name: "path", value: path),
8928
9146
  RubyCommand.Argument(name: "output_path", value: outputPath),
8929
9147
  RubyCommand.Argument(name: "verbose", value: verbose),
@@ -8986,4 +9204,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
8986
9204
 
8987
9205
  // Please don't remove the lines below
8988
9206
  // They are used to detect outdated files
8989
- // FastlaneRunnerAPIVersion [0.9.78]
9207
+ // FastlaneRunnerAPIVersion [0.9.83]