fastlane 2.202.0 → 2.212.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +98 -98
  3. data/cert/lib/cert/runner.rb +15 -7
  4. data/deliver/lib/deliver/app_screenshot.rb +18 -0
  5. data/deliver/lib/deliver/options.rb +6 -2
  6. data/deliver/lib/deliver/runner.rb +76 -29
  7. data/deliver/lib/deliver/upload_price_tier.rb +3 -1
  8. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  9. data/fastlane/lib/assets/AppfileTemplate +1 -1
  10. data/fastlane/lib/assets/AppfileTemplate.swift +1 -1
  11. data/fastlane/lib/fastlane/actions/badge.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/danger.rb +14 -0
  14. data/fastlane/lib/fastlane/actions/docs/build_app.md +5 -5
  15. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +19 -2
  16. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  17. data/fastlane/lib/fastlane/actions/docs/run_tests.md +1 -1
  18. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/git_commit.rb +4 -6
  20. data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
  21. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/pod_push.rb +19 -1
  23. data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/run_tests.rb +11 -9
  25. data/fastlane/lib/fastlane/actions/setup_ci.rb +13 -4
  26. data/fastlane/lib/fastlane/actions/trainer.rb +2 -2
  27. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +14 -4
  28. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +10 -1
  30. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  31. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  32. data/fastlane/lib/fastlane/actions/xcode_install.rb +5 -1
  33. data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
  34. data/fastlane/lib/fastlane/actions/xcodebuild.rb +8 -2
  35. data/fastlane/lib/fastlane/actions/xcodes.rb +152 -0
  36. data/fastlane/lib/fastlane/actions/xcversion.rb +10 -15
  37. data/fastlane/lib/fastlane/cli_tools_distributor.rb +5 -0
  38. data/fastlane/lib/fastlane/commands_generator.rb +2 -1
  39. data/fastlane/lib/fastlane/fast_file.rb +18 -5
  40. data/fastlane/lib/fastlane/features.rb +3 -0
  41. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
  42. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +0 -9
  43. data/fastlane/lib/fastlane/lane_manager.rb +1 -1
  44. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  45. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  46. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  47. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +1 -1
  48. data/fastlane/lib/fastlane/swift_lane_manager.rb +11 -3
  49. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +54 -1
  50. data/fastlane/lib/fastlane/tools.rb +16 -0
  51. data/fastlane/lib/fastlane/version.rb +1 -1
  52. data/fastlane/swift/Actions.swift +1 -1
  53. data/fastlane/swift/Appfile.swift +2 -2
  54. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  55. data/fastlane/swift/Atomic.swift +150 -0
  56. data/fastlane/swift/ControlCommand.swift +1 -1
  57. data/fastlane/swift/Deliverfile.swift +2 -2
  58. data/fastlane/swift/DeliverfileProtocol.swift +8 -4
  59. data/fastlane/swift/Fastlane.swift +363 -184
  60. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +30 -20
  61. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +1 -1
  62. data/fastlane/swift/Gymfile.swift +2 -2
  63. data/fastlane/swift/GymfileProtocol.swift +7 -3
  64. data/fastlane/swift/LaneFileProtocol.swift +2 -2
  65. data/fastlane/swift/MainProcess.swift +3 -3
  66. data/fastlane/swift/Matchfile.swift +2 -2
  67. data/fastlane/swift/MatchfileProtocol.swift +21 -5
  68. data/fastlane/swift/OptionalConfigValue.swift +1 -1
  69. data/fastlane/swift/Plugins.swift +1 -1
  70. data/fastlane/swift/Precheckfile.swift +2 -2
  71. data/fastlane/swift/PrecheckfileProtocol.swift +3 -3
  72. data/fastlane/swift/RubyCommand.swift +1 -1
  73. data/fastlane/swift/RubyCommandable.swift +1 -1
  74. data/fastlane/swift/Runner.swift +10 -2
  75. data/fastlane/swift/RunnerArgument.swift +1 -1
  76. data/fastlane/swift/Scanfile.swift +2 -2
  77. data/fastlane/swift/ScanfileProtocol.swift +11 -3
  78. data/fastlane/swift/Screengrabfile.swift +2 -2
  79. data/fastlane/swift/ScreengrabfileProtocol.swift +3 -3
  80. data/fastlane/swift/Snapshotfile.swift +2 -2
  81. data/fastlane/swift/SnapshotfileProtocol.swift +4 -4
  82. data/fastlane/swift/SocketClient.swift +9 -5
  83. data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -2
  84. data/fastlane/swift/SocketResponse.swift +1 -1
  85. data/fastlane/swift/formatting/Brewfile.lock.json +42 -24
  86. data/fastlane/swift/main.swift +1 -1
  87. data/fastlane/swift/upgrade_manifest.json +1 -1
  88. data/fastlane_core/README.md +1 -0
  89. data/fastlane_core/lib/fastlane_core/cert_checker.rb +79 -17
  90. data/fastlane_core/lib/fastlane_core/device_manager.rb +5 -1
  91. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +335 -20
  92. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
  93. data/fastlane_core/lib/fastlane_core/project.rb +19 -2
  94. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -2
  95. data/frameit/lib/frameit/device.rb +1 -1
  96. data/frameit/lib/frameit/device_types.rb +9 -0
  97. data/frameit/lib/frameit/frame_downloader.rb +1 -1
  98. data/gym/lib/gym/generators/build_command_generator.rb +1 -0
  99. data/gym/lib/gym/options.rb +7 -0
  100. data/match/lib/match/change_password.rb +2 -0
  101. data/match/lib/match/commands_generator.rb +2 -1
  102. data/match/lib/match/encryption/openssl.rb +1 -1
  103. data/match/lib/match/encryption.rb +3 -0
  104. data/match/lib/match/generator.rb +1 -0
  105. data/match/lib/match/importer.rb +10 -1
  106. data/match/lib/match/migrate.rb +4 -3
  107. data/match/lib/match/module.rb +54 -2
  108. data/match/lib/match/nuke.rb +36 -47
  109. data/match/lib/match/options.rb +22 -1
  110. data/match/lib/match/runner.rb +25 -6
  111. data/match/lib/match/setup.rb +1 -1
  112. data/match/lib/match/spaceship_ensure.rb +4 -2
  113. data/match/lib/match/storage/gitlab/client.rb +102 -0
  114. data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
  115. data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
  116. data/match/lib/match/storage/google_cloud_storage.rb +7 -6
  117. data/match/lib/match/storage/s3_storage.rb +3 -3
  118. data/match/lib/match/storage.rb +4 -0
  119. data/match/lib/match/table_printer.rb +2 -1
  120. data/match/lib/match/utils.rb +15 -2
  121. data/pem/lib/pem/manager.rb +1 -1
  122. data/pilot/lib/pilot/build_manager.rb +33 -13
  123. data/pilot/lib/pilot/options.rb +6 -1
  124. data/scan/lib/scan/detect_values.rb +6 -0
  125. data/scan/lib/scan/options.rb +16 -1
  126. data/scan/lib/scan/runner.rb +33 -14
  127. data/scan/lib/scan/test_command_generator.rb +7 -1
  128. data/sigh/lib/sigh/download_all.rb +14 -2
  129. data/sigh/lib/sigh/module.rb +3 -1
  130. data/sigh/lib/sigh/options.rb +5 -0
  131. data/sigh/lib/sigh/runner.rb +12 -2
  132. data/snapshot/lib/assets/SnapshotHelper.swift +3 -3
  133. data/snapshot/lib/snapshot/options.rb +1 -1
  134. data/snapshot/lib/snapshot/reports_generator.rb +1 -0
  135. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +9 -2
  136. data/spaceship/lib/spaceship/client.rb +36 -25
  137. data/spaceship/lib/spaceship/connect_api/api_client.rb +10 -5
  138. data/spaceship/lib/spaceship/connect_api/models/actor.rb +26 -0
  139. data/spaceship/lib/spaceship/connect_api/models/app.rb +7 -5
  140. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +5 -0
  141. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  142. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  143. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +27 -10
  144. data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +9 -0
  145. data/spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb +34 -0
  146. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +2 -1
  147. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
  148. data/spaceship/lib/spaceship/connect_api/models/device.rb +47 -4
  149. data/spaceship/lib/spaceship/connect_api/models/profile.rb +4 -0
  150. data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
  151. data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
  152. data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
  153. data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +13 -0
  154. data/spaceship/lib/spaceship/connect_api/models/user.rb +5 -0
  155. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +19 -0
  156. data/spaceship/lib/spaceship/connect_api/response.rb +10 -6
  157. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +33 -2
  158. data/spaceship/lib/spaceship/connect_api/token.rb +5 -2
  159. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +41 -8
  160. data/spaceship/lib/spaceship/connect_api.rb +6 -0
  161. data/spaceship/lib/spaceship/errors.rb +34 -0
  162. data/spaceship/lib/spaceship/hashcash.rb +52 -0
  163. data/spaceship/lib/spaceship/portal/certificate.rb +4 -3
  164. data/spaceship/lib/spaceship/tunes/app_ratings.rb +6 -6
  165. data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
  166. data/spaceship/lib/spaceship/tunes/tunes.rb +0 -1
  167. data/spaceship/lib/spaceship/tunes/tunes_client.rb +79 -21
  168. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +11 -3
  169. data/spaceship/lib/spaceship.rb +1 -0
  170. data/supply/lib/supply/client.rb +2 -7
  171. data/trainer/lib/assets/junit.xml.erb +9 -1
  172. data/trainer/lib/trainer/junit_generator.rb +2 -2
  173. data/trainer/lib/trainer/options.rb +1 -1
  174. data/trainer/lib/trainer/test_parser.rb +25 -3
  175. metadata +36 -33
  176. data/deliver/lib/deliver/.runner.rb.swp +0 -0
  177. data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
  178. data/fastlane/lib/.DS_Store +0 -0
  179. data/fastlane/lib/fastlane/.DS_Store +0 -0
  180. data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
  181. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
  182. data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
  183. data/spaceship/lib/spaceship/tunes/user_detail.rb +0 -15
  184. data/trainer/lib/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
1
  // Fastlane.swift
2
- // Copyright (c) 2022 FastlaneTools
2
+ // Copyright (c) 2023 FastlaneTools
3
3
 
4
4
  import Foundation
5
5
  /**
@@ -661,8 +661,9 @@ public func appledoc(input: [String],
661
661
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
662
662
  - force: Skip verification of HTML preview file
663
663
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
664
- - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
664
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
665
665
  - submitForReview: Submit the new version for Review after uploading everything
666
+ - verifyOnly: Verifies archive with App Store Connect without uploading
666
667
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
667
668
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
668
669
  - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
@@ -734,6 +735,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
734
735
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
735
736
  syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
736
737
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
738
+ verifyOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
737
739
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
738
740
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
739
741
  autoReleaseDate: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
@@ -798,6 +800,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
798
800
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
799
801
  let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
800
802
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
803
+ let verifyOnlyArg = verifyOnly.asRubyArgument(name: "verify_only", type: nil)
801
804
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
802
805
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
803
806
  let autoReleaseDateArg = autoReleaseDate.asRubyArgument(name: "auto_release_date", type: nil)
@@ -861,6 +864,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
861
864
  overwriteScreenshotsArg,
862
865
  syncScreenshotsArg,
863
866
  submitForReviewArg,
867
+ verifyOnlyArg,
864
868
  rejectIfPossibleArg,
865
869
  automaticReleaseArg,
866
870
  autoReleaseDateArg,
@@ -1111,7 +1115,7 @@ public func backupXcarchive(xcarchive: String,
1111
1115
  Automatically add a badge to your app icon
1112
1116
 
1113
1117
  - parameters:
1114
- - dark: Adds a dark flavored badge ontop of your icon
1118
+ - dark: Adds a dark flavored badge on top of your icon
1115
1119
  - custom: Add your custom overlay/badge image
1116
1120
  - noBadge: Hides the beta badge
1117
1121
  - shield: Add a shield to your app icon from shields.io
@@ -1314,6 +1318,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1314
1318
  - xcconfig: Use an extra XCCONFIG file to build your app
1315
1319
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1316
1320
  - xcodebuildFormatter: xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
1321
+ - buildTimingSummary: Create a build timing summary
1317
1322
  - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
1318
1323
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
1319
1324
  - xcprettyFormatter: A custom xcpretty formatter to use
@@ -1368,6 +1373,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1368
1373
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1369
1374
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1370
1375
  xcodebuildFormatter: String = "xcbeautify",
1376
+ buildTimingSummary: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1371
1377
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1372
1378
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1373
1379
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -1418,6 +1424,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1418
1424
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
1419
1425
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
1420
1426
  let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
1427
+ let buildTimingSummaryArg = buildTimingSummary.asRubyArgument(name: "build_timing_summary", type: nil)
1421
1428
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
1422
1429
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
1423
1430
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
@@ -1467,6 +1474,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1467
1474
  xcconfigArg,
1468
1475
  suppressXcodeOutputArg,
1469
1476
  xcodebuildFormatterArg,
1477
+ buildTimingSummaryArg,
1470
1478
  disableXcprettyArg,
1471
1479
  xcprettyTestFormatArg,
1472
1480
  xcprettyFormatterArg,
@@ -1524,6 +1532,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1524
1532
  - xcconfig: Use an extra XCCONFIG file to build your app
1525
1533
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1526
1534
  - xcodebuildFormatter: xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
1535
+ - buildTimingSummary: Create a build timing summary
1527
1536
  - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
1528
1537
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
1529
1538
  - xcprettyFormatter: A custom xcpretty formatter to use
@@ -1575,6 +1584,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1575
1584
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1576
1585
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1577
1586
  xcodebuildFormatter: String = "xcbeautify",
1587
+ buildTimingSummary: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1578
1588
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1579
1589
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1580
1590
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -1622,6 +1632,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1622
1632
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
1623
1633
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
1624
1634
  let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
1635
+ let buildTimingSummaryArg = buildTimingSummary.asRubyArgument(name: "build_timing_summary", type: nil)
1625
1636
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
1626
1637
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
1627
1638
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
@@ -1668,6 +1679,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1668
1679
  xcconfigArg,
1669
1680
  suppressXcodeOutputArg,
1670
1681
  xcodebuildFormatterArg,
1682
+ buildTimingSummaryArg,
1671
1683
  disableXcprettyArg,
1672
1684
  xcprettyTestFormatArg,
1673
1685
  xcprettyFormatterArg,
@@ -1726,6 +1738,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1726
1738
  - xcconfig: Use an extra XCCONFIG file to build your app
1727
1739
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1728
1740
  - xcodebuildFormatter: xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
1741
+ - buildTimingSummary: Create a build timing summary
1729
1742
  - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
1730
1743
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
1731
1744
  - xcprettyFormatter: A custom xcpretty formatter to use
@@ -1778,6 +1791,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1778
1791
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1779
1792
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1780
1793
  xcodebuildFormatter: String = "xcbeautify",
1794
+ buildTimingSummary: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1781
1795
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1782
1796
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
1783
1797
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -1826,6 +1840,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1826
1840
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
1827
1841
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
1828
1842
  let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
1843
+ let buildTimingSummaryArg = buildTimingSummary.asRubyArgument(name: "build_timing_summary", type: nil)
1829
1844
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
1830
1845
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
1831
1846
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
@@ -1873,6 +1888,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1873
1888
  xcconfigArg,
1874
1889
  suppressXcodeOutputArg,
1875
1890
  xcodebuildFormatterArg,
1891
+ buildTimingSummaryArg,
1876
1892
  disableXcprettyArg,
1877
1893
  xcprettyTestFormatArg,
1878
1894
  xcprettyFormatterArg,
@@ -2109,7 +2125,7 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
2109
2125
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
2110
2126
  - headless: Enabling this option will prevent displaying the simulator window
2111
2127
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
2112
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
2128
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
2113
2129
  - localizeSimulator: Enabling this option will configure the Simulator's system language
2114
2130
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
2115
2131
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -2318,7 +2334,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2318
2334
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
2319
2335
  - headless: Enabling this option will prevent displaying the simulator window
2320
2336
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
2321
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
2337
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
2322
2338
  - localizeSimulator: Enabling this option will configure the Simulator's system language
2323
2339
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
2324
2340
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -2701,7 +2717,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2701
2717
  - matchLightweightTag: Whether or not to match a lightweight tag when searching for the last one
2702
2718
  - quiet: Whether or not to disable changelog output
2703
2719
  - includeMerges: **DEPRECATED!** Use `:merge_commit_filtering` instead - Whether or not to include any commits that are merges
2704
- - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: `:include_merges`, `:exclude_merges`, `:only_include_merges`
2720
+ - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges'
2705
2721
 
2706
2722
  - returns: Returns a String containing your formatted git commits
2707
2723
 
@@ -3550,6 +3566,8 @@ public func createXcframework(frameworks: OptionalConfigValue<[String]?> = .fast
3550
3566
  - dangerId: The identifier of this Danger instance
3551
3567
  - dangerfile: The location of your Dangerfile
3552
3568
  - githubApiToken: GitHub API token for danger
3569
+ - githubEnterpriseHost: GitHub host URL for GitHub Enterprise
3570
+ - githubEnterpriseApiBaseUrl: GitHub API base URL for GitHub Enterprise
3553
3571
  - failOnErrors: Should always fail the build process, defaults to false
3554
3572
  - newComment: Makes Danger post a new comment instead of editing its previous one
3555
3573
  - removePreviousComments: Makes Danger remove all previous comment and create a new one in the end of the list
@@ -3566,6 +3584,8 @@ public func danger(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(t
3566
3584
  dangerId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
3567
3585
  dangerfile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
3568
3586
  githubApiToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
3587
+ githubEnterpriseHost: OptionalConfigValue<String?> = .fastlaneDefault(nil),
3588
+ githubEnterpriseApiBaseUrl: OptionalConfigValue<String?> = .fastlaneDefault(nil),
3569
3589
  failOnErrors: OptionalConfigValue<Bool> = .fastlaneDefault(false),
3570
3590
  newComment: OptionalConfigValue<Bool> = .fastlaneDefault(false),
3571
3591
  removePreviousComments: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -3579,6 +3599,8 @@ public func danger(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(t
3579
3599
  let dangerIdArg = dangerId.asRubyArgument(name: "danger_id", type: nil)
3580
3600
  let dangerfileArg = dangerfile.asRubyArgument(name: "dangerfile", type: nil)
3581
3601
  let githubApiTokenArg = githubApiToken.asRubyArgument(name: "github_api_token", type: nil)
3602
+ let githubEnterpriseHostArg = githubEnterpriseHost.asRubyArgument(name: "github_enterprise_host", type: nil)
3603
+ let githubEnterpriseApiBaseUrlArg = githubEnterpriseApiBaseUrl.asRubyArgument(name: "github_enterprise_api_base_url", type: nil)
3582
3604
  let failOnErrorsArg = failOnErrors.asRubyArgument(name: "fail_on_errors", type: nil)
3583
3605
  let newCommentArg = newComment.asRubyArgument(name: "new_comment", type: nil)
3584
3606
  let removePreviousCommentsArg = removePreviousComments.asRubyArgument(name: "remove_previous_comments", type: nil)
@@ -3591,6 +3613,8 @@ public func danger(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(t
3591
3613
  dangerIdArg,
3592
3614
  dangerfileArg,
3593
3615
  githubApiTokenArg,
3616
+ githubEnterpriseHostArg,
3617
+ githubEnterpriseApiBaseUrlArg,
3594
3618
  failOnErrorsArg,
3595
3619
  newCommentArg,
3596
3620
  removePreviousCommentsArg,
@@ -3669,8 +3693,9 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3669
3693
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
3670
3694
  - force: Skip verification of HTML preview file
3671
3695
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
3672
- - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
3696
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
3673
3697
  - submitForReview: Submit the new version for Review after uploading everything
3698
+ - verifyOnly: Verifies archive with App Store Connect without uploading
3674
3699
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
3675
3700
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
3676
3701
  - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
@@ -3742,6 +3767,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3742
3767
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.overwriteScreenshots),
3743
3768
  syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.syncScreenshots),
3744
3769
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.submitForReview),
3770
+ verifyOnly: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.verifyOnly),
3745
3771
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.rejectIfPossible),
3746
3772
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(deliverfile.automaticRelease),
3747
3773
  autoReleaseDate: OptionalConfigValue<Int?> = .fastlaneDefault(deliverfile.autoReleaseDate),
@@ -3806,6 +3832,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3806
3832
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
3807
3833
  let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
3808
3834
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
3835
+ let verifyOnlyArg = verifyOnly.asRubyArgument(name: "verify_only", type: nil)
3809
3836
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
3810
3837
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
3811
3838
  let autoReleaseDateArg = autoReleaseDate.asRubyArgument(name: "auto_release_date", type: nil)
@@ -3869,6 +3896,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3869
3896
  overwriteScreenshotsArg,
3870
3897
  syncScreenshotsArg,
3871
3898
  submitForReviewArg,
3899
+ verifyOnlyArg,
3872
3900
  rejectIfPossibleArg,
3873
3901
  automaticReleaseArg,
3874
3902
  autoReleaseDateArg,
@@ -4917,6 +4945,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
4917
4945
  - development: Renew the development certificate instead of the production one
4918
4946
  - skipInstall: By default, the certificate will be added to your local machine. Setting this flag will skip this action
4919
4947
  - force: Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles
4948
+ - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
4920
4949
  - appIdentifier: The bundle identifier of your app
4921
4950
  - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
4922
4951
  - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)
@@ -4946,6 +4975,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
4946
4975
  development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
4947
4976
  skipInstall: OptionalConfigValue<Bool> = .fastlaneDefault(false),
4948
4977
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
4978
+ includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
4949
4979
  appIdentifier: String,
4950
4980
  apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
4951
4981
  apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -4971,6 +5001,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
4971
5001
  let developmentArg = development.asRubyArgument(name: "development", type: nil)
4972
5002
  let skipInstallArg = skipInstall.asRubyArgument(name: "skip_install", type: nil)
4973
5003
  let forceArg = force.asRubyArgument(name: "force", type: nil)
5004
+ let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
4974
5005
  let appIdentifierArg = RubyCommand.Argument(name: "app_identifier", value: appIdentifier, type: nil)
4975
5006
  let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
4976
5007
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
@@ -4995,6 +5026,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
4995
5026
  developmentArg,
4996
5027
  skipInstallArg,
4997
5028
  forceArg,
5029
+ includeMacInProfilesArg,
4998
5030
  appIdentifierArg,
4999
5031
  apiKeyPathArg,
5000
5032
  apiKeyArg,
@@ -5110,7 +5142,7 @@ public func getPushCertificate(platform: String = "ios",
5110
5142
  Get the version number of your project
5111
5143
 
5112
5144
  - parameters:
5113
- - xcodeproj: Path to the Xcode project to read version number from, or its containing directory, optional. If ommitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed
5145
+ - xcodeproj: Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed
5114
5146
  - target: Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one
5115
5147
  - configuration: Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected
5116
5148
 
@@ -5549,6 +5581,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5549
5581
  - xcconfig: Use an extra XCCONFIG file to build your app
5550
5582
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
5551
5583
  - xcodebuildFormatter: xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/)
5584
+ - buildTimingSummary: Create a build timing summary
5552
5585
  - disableXcpretty: **DEPRECATED!** Use `xcodebuild_formatter: ''` instead - Disable xcpretty formatting of build output
5553
5586
  - xcprettyTestFormat: Use the test (RSpec style) format for build output
5554
5587
  - xcprettyFormatter: A custom xcpretty formatter to use
@@ -5603,6 +5636,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5603
5636
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcconfig),
5604
5637
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.suppressXcodeOutput),
5605
5638
  xcodebuildFormatter: String = gymfile.xcodebuildFormatter,
5639
+ buildTimingSummary: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.buildTimingSummary),
5606
5640
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.disableXcpretty),
5607
5641
  xcprettyTestFormat: OptionalConfigValue<Bool?> = .fastlaneDefault(gymfile.xcprettyTestFormat),
5608
5642
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.xcprettyFormatter),
@@ -5653,6 +5687,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5653
5687
  let xcconfigArg = xcconfig.asRubyArgument(name: "xcconfig", type: nil)
5654
5688
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
5655
5689
  let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
5690
+ let buildTimingSummaryArg = buildTimingSummary.asRubyArgument(name: "build_timing_summary", type: nil)
5656
5691
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
5657
5692
  let xcprettyTestFormatArg = xcprettyTestFormat.asRubyArgument(name: "xcpretty_test_format", type: nil)
5658
5693
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
@@ -5702,6 +5737,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5702
5737
  xcconfigArg,
5703
5738
  suppressXcodeOutputArg,
5704
5739
  xcodebuildFormatterArg,
5740
+ buildTimingSummaryArg,
5705
5741
  disableXcprettyArg,
5706
5742
  xcprettyTestFormatArg,
5707
5743
  xcprettyFormatterArg,
@@ -6609,7 +6645,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
6609
6645
  Alias for the `sync_code_signing` action
6610
6646
 
6611
6647
  - parameters:
6612
- - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
6648
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer
6613
6649
  - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
6614
6650
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
6615
6651
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
@@ -6633,18 +6669,22 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
6633
6669
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
6634
6670
  - googleCloudKeysFile: Path to the gc_keys.json file
6635
6671
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
6672
+ - skipGoogleCloudAccountConfirmation: Skips confirming to use the system google account
6636
6673
  - s3Region: Name of the S3 region
6637
6674
  - s3AccessKey: S3 access key
6638
6675
  - s3SecretAccessKey: S3 secret access key
6639
6676
  - s3Bucket: Name of the S3 bucket
6640
6677
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
6678
+ - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
6641
6679
  - keychainName: Keychain the items should be imported to
6642
6680
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
6643
6681
  - force: Renew the provisioning profiles every time you run match
6644
6682
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
6683
+ - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
6645
6684
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
6646
- - forceForNewCertificates: Renew the provisioning profiles if the device count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
6685
+ - forceForNewCertificates: Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
6647
6686
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
6687
+ - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
6648
6688
  - skipDocs: Skip generation of a README.md for the created git repository
6649
6689
  - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
6650
6690
  - 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
@@ -6682,18 +6722,22 @@ public func match(type: String = matchfile.type,
6682
6722
  googleCloudBucketName: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.googleCloudBucketName),
6683
6723
  googleCloudKeysFile: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.googleCloudKeysFile),
6684
6724
  googleCloudProjectId: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.googleCloudProjectId),
6725
+ skipGoogleCloudAccountConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipGoogleCloudAccountConfirmation),
6685
6726
  s3Region: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3Region),
6686
6727
  s3AccessKey: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3AccessKey),
6687
6728
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3SecretAccessKey),
6688
6729
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3Bucket),
6689
6730
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3ObjectPrefix),
6731
+ gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.gitlabProject),
6690
6732
  keychainName: String = matchfile.keychainName,
6691
6733
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.keychainPassword),
6692
6734
  force: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.force),
6693
6735
  forceForNewDevices: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.forceForNewDevices),
6736
+ includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.includeMacInProfiles),
6694
6737
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.includeAllCertificates),
6695
6738
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.forceForNewCertificates),
6696
6739
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipConfirmation),
6740
+ safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.safeRemoveCerts),
6697
6741
  skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipDocs),
6698
6742
  platform: String = matchfile.platform,
6699
6743
  deriveCatalystAppIdentifier: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.deriveCatalystAppIdentifier),
@@ -6729,18 +6773,22 @@ public func match(type: String = matchfile.type,
6729
6773
  let googleCloudBucketNameArg = googleCloudBucketName.asRubyArgument(name: "google_cloud_bucket_name", type: nil)
6730
6774
  let googleCloudKeysFileArg = googleCloudKeysFile.asRubyArgument(name: "google_cloud_keys_file", type: nil)
6731
6775
  let googleCloudProjectIdArg = googleCloudProjectId.asRubyArgument(name: "google_cloud_project_id", type: nil)
6776
+ let skipGoogleCloudAccountConfirmationArg = skipGoogleCloudAccountConfirmation.asRubyArgument(name: "skip_google_cloud_account_confirmation", type: nil)
6732
6777
  let s3RegionArg = s3Region.asRubyArgument(name: "s3_region", type: nil)
6733
6778
  let s3AccessKeyArg = s3AccessKey.asRubyArgument(name: "s3_access_key", type: nil)
6734
6779
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
6735
6780
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
6736
6781
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
6782
+ let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
6737
6783
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
6738
6784
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
6739
6785
  let forceArg = force.asRubyArgument(name: "force", type: nil)
6740
6786
  let forceForNewDevicesArg = forceForNewDevices.asRubyArgument(name: "force_for_new_devices", type: nil)
6787
+ let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
6741
6788
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
6742
6789
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
6743
6790
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
6791
+ let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
6744
6792
  let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
6745
6793
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
6746
6794
  let deriveCatalystAppIdentifierArg = deriveCatalystAppIdentifier.asRubyArgument(name: "derive_catalyst_app_identifier", type: nil)
@@ -6775,18 +6823,22 @@ public func match(type: String = matchfile.type,
6775
6823
  googleCloudBucketNameArg,
6776
6824
  googleCloudKeysFileArg,
6777
6825
  googleCloudProjectIdArg,
6826
+ skipGoogleCloudAccountConfirmationArg,
6778
6827
  s3RegionArg,
6779
6828
  s3AccessKeyArg,
6780
6829
  s3SecretAccessKeyArg,
6781
6830
  s3BucketArg,
6782
6831
  s3ObjectPrefixArg,
6832
+ gitlabProjectArg,
6783
6833
  keychainNameArg,
6784
6834
  keychainPasswordArg,
6785
6835
  forceArg,
6786
6836
  forceForNewDevicesArg,
6837
+ includeMacInProfilesArg,
6787
6838
  includeAllCertificatesArg,
6788
6839
  forceForNewCertificatesArg,
6789
6840
  skipConfirmationArg,
6841
+ safeRemoveCertsArg,
6790
6842
  skipDocsArg,
6791
6843
  platformArg,
6792
6844
  deriveCatalystAppIdentifierArg,
@@ -6808,7 +6860,7 @@ public func match(type: String = matchfile.type,
6808
6860
  Easily nuke your certificate and provisioning profiles (via _match_)
6809
6861
 
6810
6862
  - parameters:
6811
- - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
6863
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer
6812
6864
  - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
6813
6865
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
6814
6866
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
@@ -6832,18 +6884,22 @@ public func match(type: String = matchfile.type,
6832
6884
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
6833
6885
  - googleCloudKeysFile: Path to the gc_keys.json file
6834
6886
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
6887
+ - skipGoogleCloudAccountConfirmation: Skips confirming to use the system google account
6835
6888
  - s3Region: Name of the S3 region
6836
6889
  - s3AccessKey: S3 access key
6837
6890
  - s3SecretAccessKey: S3 secret access key
6838
6891
  - s3Bucket: Name of the S3 bucket
6839
6892
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
6893
+ - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
6840
6894
  - keychainName: Keychain the items should be imported to
6841
6895
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
6842
6896
  - force: Renew the provisioning profiles every time you run match
6843
6897
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
6898
+ - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
6844
6899
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
6845
- - forceForNewCertificates: Renew the provisioning profiles if the device count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
6900
+ - forceForNewCertificates: Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
6846
6901
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
6902
+ - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
6847
6903
  - skipDocs: Skip generation of a README.md for the created git repository
6848
6904
  - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
6849
6905
  - 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
@@ -6885,18 +6941,22 @@ public func matchNuke(type: String = "development",
6885
6941
  googleCloudBucketName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6886
6942
  googleCloudKeysFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6887
6943
  googleCloudProjectId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6944
+ skipGoogleCloudAccountConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6888
6945
  s3Region: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6889
6946
  s3AccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6890
6947
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6891
6948
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6892
6949
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6950
+ gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6893
6951
  keychainName: String = "login.keychain",
6894
6952
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6895
6953
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6896
6954
  forceForNewDevices: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6955
+ includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6897
6956
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6898
6957
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6899
6958
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6959
+ safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6900
6960
  skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
6901
6961
  platform: String = "ios",
6902
6962
  deriveCatalystAppIdentifier: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -6932,18 +6992,22 @@ public func matchNuke(type: String = "development",
6932
6992
  let googleCloudBucketNameArg = googleCloudBucketName.asRubyArgument(name: "google_cloud_bucket_name", type: nil)
6933
6993
  let googleCloudKeysFileArg = googleCloudKeysFile.asRubyArgument(name: "google_cloud_keys_file", type: nil)
6934
6994
  let googleCloudProjectIdArg = googleCloudProjectId.asRubyArgument(name: "google_cloud_project_id", type: nil)
6995
+ let skipGoogleCloudAccountConfirmationArg = skipGoogleCloudAccountConfirmation.asRubyArgument(name: "skip_google_cloud_account_confirmation", type: nil)
6935
6996
  let s3RegionArg = s3Region.asRubyArgument(name: "s3_region", type: nil)
6936
6997
  let s3AccessKeyArg = s3AccessKey.asRubyArgument(name: "s3_access_key", type: nil)
6937
6998
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
6938
6999
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
6939
7000
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
7001
+ let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
6940
7002
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
6941
7003
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
6942
7004
  let forceArg = force.asRubyArgument(name: "force", type: nil)
6943
7005
  let forceForNewDevicesArg = forceForNewDevices.asRubyArgument(name: "force_for_new_devices", type: nil)
7006
+ let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
6944
7007
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
6945
7008
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
6946
7009
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
7010
+ let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
6947
7011
  let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
6948
7012
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
6949
7013
  let deriveCatalystAppIdentifierArg = deriveCatalystAppIdentifier.asRubyArgument(name: "derive_catalyst_app_identifier", type: nil)
@@ -6978,18 +7042,22 @@ public func matchNuke(type: String = "development",
6978
7042
  googleCloudBucketNameArg,
6979
7043
  googleCloudKeysFileArg,
6980
7044
  googleCloudProjectIdArg,
7045
+ skipGoogleCloudAccountConfirmationArg,
6981
7046
  s3RegionArg,
6982
7047
  s3AccessKeyArg,
6983
7048
  s3SecretAccessKeyArg,
6984
7049
  s3BucketArg,
6985
7050
  s3ObjectPrefixArg,
7051
+ gitlabProjectArg,
6986
7052
  keychainNameArg,
6987
7053
  keychainPasswordArg,
6988
7054
  forceArg,
6989
7055
  forceForNewDevicesArg,
7056
+ includeMacInProfilesArg,
6990
7057
  includeAllCertificatesArg,
6991
7058
  forceForNewCertificatesArg,
6992
7059
  skipConfirmationArg,
7060
+ safeRemoveCertsArg,
6993
7061
  skipDocsArg,
6994
7062
  platformArg,
6995
7063
  deriveCatalystAppIdentifierArg,
@@ -7562,6 +7630,7 @@ public func pem(platform: String = "ios",
7562
7630
  - waitProcessingTimeoutDuration: Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will `force stop` to wait for App Store Connect processing and exit with exception
7563
7631
  - waitForUploadedBuild: **DEPRECATED!** No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used
7564
7632
  - rejectBuildWaitingForReview: Expire previous if it's 'waiting for review'
7633
+ - submitBetaReview: Send the build for a beta review
7565
7634
 
7566
7635
  More details can be found on https://docs.fastlane.tools/actions/pilot/.
7567
7636
  This integration will only do the TestFlight upload.
@@ -7603,7 +7672,8 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7603
7672
  waitProcessingInterval: Int = 30,
7604
7673
  waitProcessingTimeoutDuration: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
7605
7674
  waitForUploadedBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7606
- rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false))
7675
+ rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7676
+ submitBetaReview: OptionalConfigValue<Bool> = .fastlaneDefault(true))
7607
7677
  {
7608
7678
  let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
7609
7679
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
@@ -7643,6 +7713,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7643
7713
  let waitProcessingTimeoutDurationArg = waitProcessingTimeoutDuration.asRubyArgument(name: "wait_processing_timeout_duration", type: nil)
7644
7714
  let waitForUploadedBuildArg = waitForUploadedBuild.asRubyArgument(name: "wait_for_uploaded_build", type: nil)
7645
7715
  let rejectBuildWaitingForReviewArg = rejectBuildWaitingForReview.asRubyArgument(name: "reject_build_waiting_for_review", type: nil)
7716
+ let submitBetaReviewArg = submitBetaReview.asRubyArgument(name: "submit_beta_review", type: nil)
7646
7717
  let array: [RubyCommand.Argument?] = [apiKeyPathArg,
7647
7718
  apiKeyArg,
7648
7719
  usernameArg,
@@ -7680,7 +7751,8 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7680
7751
  waitProcessingIntervalArg,
7681
7752
  waitProcessingTimeoutDurationArg,
7682
7753
  waitForUploadedBuildArg,
7683
- rejectBuildWaitingForReviewArg]
7754
+ rejectBuildWaitingForReviewArg,
7755
+ submitBetaReviewArg]
7684
7756
  let args: [RubyCommand.Argument] = array
7685
7757
  .filter { $0?.value != nil }
7686
7758
  .compactMap { $0 }
@@ -7825,6 +7897,8 @@ public func podLibLint(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefau
7825
7897
  - verbose: Show more debugging information
7826
7898
  - useModularHeaders: Use modular headers option during validation
7827
7899
  - synchronous: If validation depends on other recently pushed pods, synchronize
7900
+ - noOverwrite: Disallow pushing that would overwrite an existing spec
7901
+ - localOnly: Does not perform the step of pushing REPO to its remote
7828
7902
  */
7829
7903
  public func podPush(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7830
7904
  path: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -7838,7 +7912,9 @@ public func podPush(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(
7838
7912
  useJson: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
7839
7913
  verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7840
7914
  useModularHeaders: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
7841
- synchronous: OptionalConfigValue<Bool?> = .fastlaneDefault(nil))
7915
+ synchronous: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
7916
+ noOverwrite: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
7917
+ localOnly: OptionalConfigValue<Bool?> = .fastlaneDefault(nil))
7842
7918
  {
7843
7919
  let useBundleExecArg = useBundleExec.asRubyArgument(name: "use_bundle_exec", type: nil)
7844
7920
  let pathArg = path.asRubyArgument(name: "path", type: nil)
@@ -7853,6 +7929,8 @@ public func podPush(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(
7853
7929
  let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
7854
7930
  let useModularHeadersArg = useModularHeaders.asRubyArgument(name: "use_modular_headers", type: nil)
7855
7931
  let synchronousArg = synchronous.asRubyArgument(name: "synchronous", type: nil)
7932
+ let noOverwriteArg = noOverwrite.asRubyArgument(name: "no_overwrite", type: nil)
7933
+ let localOnlyArg = localOnly.asRubyArgument(name: "local_only", type: nil)
7856
7934
  let array: [RubyCommand.Argument?] = [useBundleExecArg,
7857
7935
  pathArg,
7858
7936
  repoArg,
@@ -7865,7 +7943,9 @@ public func podPush(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefault(
7865
7943
  useJsonArg,
7866
7944
  verboseArg,
7867
7945
  useModularHeadersArg,
7868
- synchronousArg]
7946
+ synchronousArg,
7947
+ noOverwriteArg,
7948
+ localOnlyArg]
7869
7949
  let args: [RubyCommand.Argument] = array
7870
7950
  .filter { $0?.value != nil }
7871
7951
  .compactMap { $0 }
@@ -8228,7 +8308,7 @@ public func puts(message: OptionalConfigValue<String?> = .fastlaneDefault(nil))
8228
8308
  This can be useful when basing your release process on the version string only stored in one place - in the podspec.
8229
8309
  As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release).
8230
8310
  */
8231
- @discardableResult public func readPodspec(path: String) -> [String: String] {
8311
+ @discardableResult public func readPodspec(path: String) -> [String: Any] {
8232
8312
  let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
8233
8313
  let array: [RubyCommand.Argument?] = [pathArg]
8234
8314
  let args: [RubyCommand.Argument] = array
@@ -8598,8 +8678,10 @@ public func rubyVersion() {
8598
8678
  - derivedDataPath: The directory where build products and other derived data will go
8599
8679
  - shouldZipBuildProducts: Should zip the derived data build products and place in output path?
8600
8680
  - outputXctestrun: Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path?
8681
+ - resultBundlePath: Custom path for the result bundle, overrides result_bundle
8601
8682
  - resultBundle: Should an Xcode result bundle be generated in the output directory
8602
8683
  - useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
8684
+ - parallelTesting: Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled
8603
8685
  - concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
8604
8686
  - maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
8605
8687
  - disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
@@ -8632,83 +8714,87 @@ public func rubyVersion() {
8632
8714
  - numberOfRetries: The number of times a test can fail
8633
8715
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
8634
8716
 
8717
+ - returns: Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries
8718
+
8635
8719
  More information: https://docs.fastlane.tools/actions/scan/
8636
8720
  */
8637
- public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8638
- project: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8639
- packagePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8640
- scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8641
- device: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8642
- devices: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
8643
- skipDetectDevices: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8644
- ensureDevicesFound: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8645
- forceQuitSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8646
- resetSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8647
- disableSlideToType: OptionalConfigValue<Bool> = .fastlaneDefault(true),
8648
- prelaunchSimulator: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8649
- reinstallApp: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8650
- appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8651
- onlyTesting: Any? = nil,
8652
- skipTesting: Any? = nil,
8653
- testplan: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8654
- onlyTestConfigurations: Any? = nil,
8655
- skipTestConfigurations: Any? = nil,
8656
- xctestrun: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8657
- toolchain: Any? = nil,
8658
- clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8659
- codeCoverage: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8660
- addressSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8661
- threadSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8662
- openReport: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8663
- outputDirectory: String = "./test_output",
8664
- outputStyle: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8665
- outputTypes: String = "html,junit",
8666
- outputFiles: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8667
- buildlogPath: String = "~/Library/Logs/scan",
8668
- includeSimulatorLogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8669
- suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8670
- xcodebuildFormatter: String = "xcbeautify",
8671
- outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8672
- disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8673
- formatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8674
- xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8675
- xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8676
- derivedDataPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8677
- shouldZipBuildProducts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8678
- outputXctestrun: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8679
- resultBundle: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8680
- useClangReportName: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8681
- concurrentWorkers: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
8682
- maxConcurrentSimulators: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
8683
- disableConcurrentTesting: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8684
- skipBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8685
- testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8686
- buildForTesting: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8687
- sdk: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8688
- configuration: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8689
- xcargs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8690
- xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8691
- appName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8692
- deploymentTargetVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8693
- slackUrl: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8694
- slackChannel: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8695
- slackMessage: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8696
- slackUseWebhookConfiguredUsernameAndIcon: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8697
- slackUsername: String = "fastlane",
8698
- slackIconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
8699
- skipSlack: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8700
- slackOnlyOnFailure: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8701
- slackDefaultPayloads: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
8702
- destination: Any? = nil,
8703
- catalystPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8704
- customReportFileName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8705
- xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
8706
- clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8707
- skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8708
- disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8709
- useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8710
- numberOfRetries: Int = 0,
8711
- failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(true))
8721
+ @discardableResult public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8722
+ project: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8723
+ packagePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8724
+ scheme: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8725
+ device: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8726
+ devices: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
8727
+ skipDetectDevices: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8728
+ ensureDevicesFound: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8729
+ forceQuitSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8730
+ resetSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8731
+ disableSlideToType: OptionalConfigValue<Bool> = .fastlaneDefault(true),
8732
+ prelaunchSimulator: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8733
+ reinstallApp: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8734
+ appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8735
+ onlyTesting: Any? = nil,
8736
+ skipTesting: Any? = nil,
8737
+ testplan: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8738
+ onlyTestConfigurations: Any? = nil,
8739
+ skipTestConfigurations: Any? = nil,
8740
+ xctestrun: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8741
+ toolchain: Any? = nil,
8742
+ clean: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8743
+ codeCoverage: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8744
+ addressSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8745
+ threadSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8746
+ openReport: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8747
+ outputDirectory: String = "./test_output",
8748
+ outputStyle: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8749
+ outputTypes: String = "html,junit",
8750
+ outputFiles: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8751
+ buildlogPath: String = "~/Library/Logs/scan",
8752
+ includeSimulatorLogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8753
+ suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8754
+ xcodebuildFormatter: String = "xcbeautify",
8755
+ outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8756
+ disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8757
+ formatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8758
+ xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8759
+ xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8760
+ derivedDataPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8761
+ shouldZipBuildProducts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8762
+ outputXctestrun: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8763
+ resultBundlePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8764
+ resultBundle: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8765
+ useClangReportName: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8766
+ parallelTesting: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8767
+ concurrentWorkers: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
8768
+ maxConcurrentSimulators: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
8769
+ disableConcurrentTesting: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8770
+ skipBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8771
+ testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8772
+ buildForTesting: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
8773
+ sdk: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8774
+ configuration: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8775
+ xcargs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8776
+ xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8777
+ appName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8778
+ deploymentTargetVersion: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8779
+ slackUrl: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8780
+ slackChannel: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8781
+ slackMessage: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8782
+ slackUseWebhookConfiguredUsernameAndIcon: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8783
+ slackUsername: String = "fastlane",
8784
+ slackIconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png",
8785
+ skipSlack: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8786
+ slackOnlyOnFailure: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8787
+ slackDefaultPayloads: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
8788
+ destination: Any? = nil,
8789
+ catalystPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8790
+ customReportFileName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8791
+ xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
8792
+ clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
8793
+ skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8794
+ disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8795
+ useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false),
8796
+ numberOfRetries: Int = 0,
8797
+ failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(true)) -> [String: Any]
8712
8798
  {
8713
8799
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
8714
8800
  let projectArg = project.asRubyArgument(name: "project", type: nil)
@@ -8752,8 +8838,10 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8752
8838
  let derivedDataPathArg = derivedDataPath.asRubyArgument(name: "derived_data_path", type: nil)
8753
8839
  let shouldZipBuildProductsArg = shouldZipBuildProducts.asRubyArgument(name: "should_zip_build_products", type: nil)
8754
8840
  let outputXctestrunArg = outputXctestrun.asRubyArgument(name: "output_xctestrun", type: nil)
8841
+ let resultBundlePathArg = resultBundlePath.asRubyArgument(name: "result_bundle_path", type: nil)
8755
8842
  let resultBundleArg = resultBundle.asRubyArgument(name: "result_bundle", type: nil)
8756
8843
  let useClangReportNameArg = useClangReportName.asRubyArgument(name: "use_clang_report_name", type: nil)
8844
+ let parallelTestingArg = parallelTesting.asRubyArgument(name: "parallel_testing", type: nil)
8757
8845
  let concurrentWorkersArg = concurrentWorkers.asRubyArgument(name: "concurrent_workers", type: nil)
8758
8846
  let maxConcurrentSimulatorsArg = maxConcurrentSimulators.asRubyArgument(name: "max_concurrent_simulators", type: nil)
8759
8847
  let disableConcurrentTestingArg = disableConcurrentTesting.asRubyArgument(name: "disable_concurrent_testing", type: nil)
@@ -8827,8 +8915,10 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8827
8915
  derivedDataPathArg,
8828
8916
  shouldZipBuildProductsArg,
8829
8917
  outputXctestrunArg,
8918
+ resultBundlePathArg,
8830
8919
  resultBundleArg,
8831
8920
  useClangReportNameArg,
8921
+ parallelTestingArg,
8832
8922
  concurrentWorkersArg,
8833
8923
  maxConcurrentSimulatorsArg,
8834
8924
  disableConcurrentTestingArg,
@@ -8864,7 +8954,7 @@ public func runTests(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
8864
8954
  .filter { $0?.value != nil }
8865
8955
  .compactMap { $0 }
8866
8956
  let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: args)
8867
- _ = runner.executeCommand(command)
8957
+ return parseDictionary(fromString: runner.executeCommand(command))
8868
8958
  }
8869
8959
 
8870
8960
  /**
@@ -9015,8 +9105,10 @@ public func say(text: [String],
9015
9105
  - derivedDataPath: The directory where build products and other derived data will go
9016
9106
  - shouldZipBuildProducts: Should zip the derived data build products and place in output path?
9017
9107
  - outputXctestrun: Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path?
9108
+ - resultBundlePath: Custom path for the result bundle, overrides result_bundle
9018
9109
  - resultBundle: Should an Xcode result bundle be generated in the output directory
9019
9110
  - useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
9111
+ - parallelTesting: Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled
9020
9112
  - concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
9021
9113
  - maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
9022
9114
  - disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
@@ -9049,83 +9141,87 @@ public func say(text: [String],
9049
9141
  - numberOfRetries: The number of times a test can fail
9050
9142
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
9051
9143
 
9144
+ - returns: Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries
9145
+
9052
9146
  More information: https://docs.fastlane.tools/actions/scan/
9053
9147
  */
9054
- public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.workspace),
9055
- project: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.project),
9056
- packagePath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.packagePath),
9057
- scheme: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.scheme),
9058
- device: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.device),
9059
- devices: OptionalConfigValue<[String]?> = .fastlaneDefault(scanfile.devices),
9060
- skipDetectDevices: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipDetectDevices),
9061
- ensureDevicesFound: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.ensureDevicesFound),
9062
- forceQuitSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.forceQuitSimulator),
9063
- resetSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.resetSimulator),
9064
- disableSlideToType: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disableSlideToType),
9065
- prelaunchSimulator: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.prelaunchSimulator),
9066
- reinstallApp: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.reinstallApp),
9067
- appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.appIdentifier),
9068
- onlyTesting: Any? = scanfile.onlyTesting,
9069
- skipTesting: Any? = scanfile.skipTesting,
9070
- testplan: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.testplan),
9071
- onlyTestConfigurations: Any? = scanfile.onlyTestConfigurations,
9072
- skipTestConfigurations: Any? = scanfile.skipTestConfigurations,
9073
- xctestrun: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xctestrun),
9074
- toolchain: Any? = scanfile.toolchain,
9075
- clean: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.clean),
9076
- codeCoverage: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.codeCoverage),
9077
- addressSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.addressSanitizer),
9078
- threadSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.threadSanitizer),
9079
- openReport: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.openReport),
9080
- outputDirectory: String = scanfile.outputDirectory,
9081
- outputStyle: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.outputStyle),
9082
- outputTypes: String = scanfile.outputTypes,
9083
- outputFiles: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.outputFiles),
9084
- buildlogPath: String = scanfile.buildlogPath,
9085
- includeSimulatorLogs: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.includeSimulatorLogs),
9086
- suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.suppressXcodeOutput),
9087
- xcodebuildFormatter: String = scanfile.xcodebuildFormatter,
9088
- outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.outputRemoveRetryAttempts),
9089
- disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.disableXcpretty),
9090
- formatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.formatter),
9091
- xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyFormatter),
9092
- xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyArgs),
9093
- derivedDataPath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.derivedDataPath),
9094
- shouldZipBuildProducts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.shouldZipBuildProducts),
9095
- outputXctestrun: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.outputXctestrun),
9096
- resultBundle: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.resultBundle),
9097
- useClangReportName: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.useClangReportName),
9098
- concurrentWorkers: OptionalConfigValue<Int?> = .fastlaneDefault(scanfile.concurrentWorkers),
9099
- maxConcurrentSimulators: OptionalConfigValue<Int?> = .fastlaneDefault(scanfile.maxConcurrentSimulators),
9100
- disableConcurrentTesting: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disableConcurrentTesting),
9101
- skipBuild: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipBuild),
9102
- testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.testWithoutBuilding),
9103
- buildForTesting: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.buildForTesting),
9104
- sdk: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.sdk),
9105
- configuration: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.configuration),
9106
- xcargs: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcargs),
9107
- xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcconfig),
9108
- appName: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.appName),
9109
- deploymentTargetVersion: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.deploymentTargetVersion),
9110
- slackUrl: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.slackUrl),
9111
- slackChannel: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.slackChannel),
9112
- slackMessage: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.slackMessage),
9113
- slackUseWebhookConfiguredUsernameAndIcon: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.slackUseWebhookConfiguredUsernameAndIcon),
9114
- slackUsername: String = scanfile.slackUsername,
9115
- slackIconUrl: String = scanfile.slackIconUrl,
9116
- skipSlack: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipSlack),
9117
- slackOnlyOnFailure: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.slackOnlyOnFailure),
9118
- slackDefaultPayloads: OptionalConfigValue<[String]?> = .fastlaneDefault(scanfile.slackDefaultPayloads),
9119
- destination: Any? = scanfile.destination,
9120
- catalystPlatform: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.catalystPlatform),
9121
- customReportFileName: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.customReportFileName),
9122
- xcodebuildCommand: String = scanfile.xcodebuildCommand,
9123
- clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.clonedSourcePackagesPath),
9124
- skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipPackageDependenciesResolution),
9125
- disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disablePackageAutomaticUpdates),
9126
- useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.useSystemScm),
9127
- numberOfRetries: Int = scanfile.numberOfRetries,
9128
- failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.failBuild))
9148
+ @discardableResult public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.workspace),
9149
+ project: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.project),
9150
+ packagePath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.packagePath),
9151
+ scheme: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.scheme),
9152
+ device: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.device),
9153
+ devices: OptionalConfigValue<[String]?> = .fastlaneDefault(scanfile.devices),
9154
+ skipDetectDevices: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipDetectDevices),
9155
+ ensureDevicesFound: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.ensureDevicesFound),
9156
+ forceQuitSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.forceQuitSimulator),
9157
+ resetSimulator: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.resetSimulator),
9158
+ disableSlideToType: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disableSlideToType),
9159
+ prelaunchSimulator: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.prelaunchSimulator),
9160
+ reinstallApp: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.reinstallApp),
9161
+ appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.appIdentifier),
9162
+ onlyTesting: Any? = scanfile.onlyTesting,
9163
+ skipTesting: Any? = scanfile.skipTesting,
9164
+ testplan: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.testplan),
9165
+ onlyTestConfigurations: Any? = scanfile.onlyTestConfigurations,
9166
+ skipTestConfigurations: Any? = scanfile.skipTestConfigurations,
9167
+ xctestrun: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xctestrun),
9168
+ toolchain: Any? = scanfile.toolchain,
9169
+ clean: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.clean),
9170
+ codeCoverage: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.codeCoverage),
9171
+ addressSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.addressSanitizer),
9172
+ threadSanitizer: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.threadSanitizer),
9173
+ openReport: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.openReport),
9174
+ outputDirectory: String = scanfile.outputDirectory,
9175
+ outputStyle: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.outputStyle),
9176
+ outputTypes: String = scanfile.outputTypes,
9177
+ outputFiles: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.outputFiles),
9178
+ buildlogPath: String = scanfile.buildlogPath,
9179
+ includeSimulatorLogs: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.includeSimulatorLogs),
9180
+ suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.suppressXcodeOutput),
9181
+ xcodebuildFormatter: String = scanfile.xcodebuildFormatter,
9182
+ outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.outputRemoveRetryAttempts),
9183
+ disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.disableXcpretty),
9184
+ formatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.formatter),
9185
+ xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyFormatter),
9186
+ xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyArgs),
9187
+ derivedDataPath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.derivedDataPath),
9188
+ shouldZipBuildProducts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.shouldZipBuildProducts),
9189
+ outputXctestrun: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.outputXctestrun),
9190
+ resultBundlePath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.resultBundlePath),
9191
+ resultBundle: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.resultBundle),
9192
+ useClangReportName: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.useClangReportName),
9193
+ parallelTesting: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.parallelTesting),
9194
+ concurrentWorkers: OptionalConfigValue<Int?> = .fastlaneDefault(scanfile.concurrentWorkers),
9195
+ maxConcurrentSimulators: OptionalConfigValue<Int?> = .fastlaneDefault(scanfile.maxConcurrentSimulators),
9196
+ disableConcurrentTesting: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disableConcurrentTesting),
9197
+ skipBuild: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipBuild),
9198
+ testWithoutBuilding: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.testWithoutBuilding),
9199
+ buildForTesting: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.buildForTesting),
9200
+ sdk: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.sdk),
9201
+ configuration: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.configuration),
9202
+ xcargs: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcargs),
9203
+ xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcconfig),
9204
+ appName: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.appName),
9205
+ deploymentTargetVersion: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.deploymentTargetVersion),
9206
+ slackUrl: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.slackUrl),
9207
+ slackChannel: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.slackChannel),
9208
+ slackMessage: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.slackMessage),
9209
+ slackUseWebhookConfiguredUsernameAndIcon: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.slackUseWebhookConfiguredUsernameAndIcon),
9210
+ slackUsername: String = scanfile.slackUsername,
9211
+ slackIconUrl: String = scanfile.slackIconUrl,
9212
+ skipSlack: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipSlack),
9213
+ slackOnlyOnFailure: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.slackOnlyOnFailure),
9214
+ slackDefaultPayloads: OptionalConfigValue<[String]?> = .fastlaneDefault(scanfile.slackDefaultPayloads),
9215
+ destination: Any? = scanfile.destination,
9216
+ catalystPlatform: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.catalystPlatform),
9217
+ customReportFileName: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.customReportFileName),
9218
+ xcodebuildCommand: String = scanfile.xcodebuildCommand,
9219
+ clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.clonedSourcePackagesPath),
9220
+ skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipPackageDependenciesResolution),
9221
+ disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disablePackageAutomaticUpdates),
9222
+ useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.useSystemScm),
9223
+ numberOfRetries: Int = scanfile.numberOfRetries,
9224
+ failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.failBuild)) -> [String: Any]
9129
9225
  {
9130
9226
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
9131
9227
  let projectArg = project.asRubyArgument(name: "project", type: nil)
@@ -9169,8 +9265,10 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9169
9265
  let derivedDataPathArg = derivedDataPath.asRubyArgument(name: "derived_data_path", type: nil)
9170
9266
  let shouldZipBuildProductsArg = shouldZipBuildProducts.asRubyArgument(name: "should_zip_build_products", type: nil)
9171
9267
  let outputXctestrunArg = outputXctestrun.asRubyArgument(name: "output_xctestrun", type: nil)
9268
+ let resultBundlePathArg = resultBundlePath.asRubyArgument(name: "result_bundle_path", type: nil)
9172
9269
  let resultBundleArg = resultBundle.asRubyArgument(name: "result_bundle", type: nil)
9173
9270
  let useClangReportNameArg = useClangReportName.asRubyArgument(name: "use_clang_report_name", type: nil)
9271
+ let parallelTestingArg = parallelTesting.asRubyArgument(name: "parallel_testing", type: nil)
9174
9272
  let concurrentWorkersArg = concurrentWorkers.asRubyArgument(name: "concurrent_workers", type: nil)
9175
9273
  let maxConcurrentSimulatorsArg = maxConcurrentSimulators.asRubyArgument(name: "max_concurrent_simulators", type: nil)
9176
9274
  let disableConcurrentTestingArg = disableConcurrentTesting.asRubyArgument(name: "disable_concurrent_testing", type: nil)
@@ -9244,8 +9342,10 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9244
9342
  derivedDataPathArg,
9245
9343
  shouldZipBuildProductsArg,
9246
9344
  outputXctestrunArg,
9345
+ resultBundlePathArg,
9247
9346
  resultBundleArg,
9248
9347
  useClangReportNameArg,
9348
+ parallelTestingArg,
9249
9349
  concurrentWorkersArg,
9250
9350
  maxConcurrentSimulatorsArg,
9251
9351
  disableConcurrentTestingArg,
@@ -9281,7 +9381,7 @@ public func scan(workspace: OptionalConfigValue<String?> = .fastlaneDefault(scan
9281
9381
  .filter { $0?.value != nil }
9282
9382
  .compactMap { $0 }
9283
9383
  let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: args)
9284
- _ = runner.executeCommand(command)
9384
+ return parseDictionary(fromString: runner.executeCommand(command))
9285
9385
  }
9286
9386
 
9287
9387
  /**
@@ -9638,6 +9738,7 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
9638
9738
  - parameters:
9639
9739
  - force: Force setup, even if not executed by CI
9640
9740
  - provider: CI provider. If none is set, the provider is detected automatically
9741
+ - timeout: Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'
9641
9742
 
9642
9743
  - Creates a new temporary keychain for use with match|
9643
9744
  - Switches match to `readonly` mode to not create new profiles/cert on CI|
@@ -9646,12 +9747,15 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
9646
9747
  This action helps with CI integration. Add this to the top of your Fastfile if you use CI.
9647
9748
  */
9648
9749
  public func setupCi(force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9649
- provider: OptionalConfigValue<String?> = .fastlaneDefault(nil))
9750
+ provider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
9751
+ timeout: Int = 3600)
9650
9752
  {
9651
9753
  let forceArg = force.asRubyArgument(name: "force", type: nil)
9652
9754
  let providerArg = provider.asRubyArgument(name: "provider", type: nil)
9755
+ let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
9653
9756
  let array: [RubyCommand.Argument?] = [forceArg,
9654
- providerArg]
9757
+ providerArg,
9758
+ timeoutArg]
9655
9759
  let args: [RubyCommand.Argument] = array
9656
9760
  .filter { $0?.value != nil }
9657
9761
  .compactMap { $0 }
@@ -9808,6 +9912,7 @@ public func setupTravis(force: OptionalConfigValue<Bool> = .fastlaneDefault(fals
9808
9912
  - development: Renew the development certificate instead of the production one
9809
9913
  - skipInstall: By default, the certificate will be added to your local machine. Setting this flag will skip this action
9810
9914
  - force: Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles
9915
+ - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
9811
9916
  - appIdentifier: The bundle identifier of your app
9812
9917
  - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
9813
9918
  - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)
@@ -9837,6 +9942,7 @@ public func setupTravis(force: OptionalConfigValue<Bool> = .fastlaneDefault(fals
9837
9942
  development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9838
9943
  skipInstall: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9839
9944
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9945
+ includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9840
9946
  appIdentifier: String,
9841
9947
  apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
9842
9948
  apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -9862,6 +9968,7 @@ public func setupTravis(force: OptionalConfigValue<Bool> = .fastlaneDefault(fals
9862
9968
  let developmentArg = development.asRubyArgument(name: "development", type: nil)
9863
9969
  let skipInstallArg = skipInstall.asRubyArgument(name: "skip_install", type: nil)
9864
9970
  let forceArg = force.asRubyArgument(name: "force", type: nil)
9971
+ let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
9865
9972
  let appIdentifierArg = RubyCommand.Argument(name: "app_identifier", value: appIdentifier, type: nil)
9866
9973
  let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
9867
9974
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
@@ -9886,6 +9993,7 @@ public func setupTravis(force: OptionalConfigValue<Bool> = .fastlaneDefault(fals
9886
9993
  developmentArg,
9887
9994
  skipInstallArg,
9888
9995
  forceArg,
9996
+ includeMacInProfilesArg,
9889
9997
  appIdentifierArg,
9890
9998
  apiKeyPathArg,
9891
9999
  apiKeyArg,
@@ -10204,7 +10312,7 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10204
10312
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
10205
10313
  - headless: Enabling this option will prevent displaying the simulator window
10206
10314
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
10207
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
10315
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
10208
10316
  - localizeSimulator: Enabling this option will configure the Simulator's system language
10209
10317
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
10210
10318
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -10978,7 +11086,7 @@ public func swiftlint(mode: String = "lint",
10978
11086
  Easily sync your certificates and profiles across your team (via _match_)
10979
11087
 
10980
11088
  - parameters:
10981
- - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
11089
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer
10982
11090
  - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
10983
11091
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
10984
11092
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
@@ -11002,18 +11110,22 @@ public func swiftlint(mode: String = "lint",
11002
11110
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
11003
11111
  - googleCloudKeysFile: Path to the gc_keys.json file
11004
11112
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
11113
+ - skipGoogleCloudAccountConfirmation: Skips confirming to use the system google account
11005
11114
  - s3Region: Name of the S3 region
11006
11115
  - s3AccessKey: S3 access key
11007
11116
  - s3SecretAccessKey: S3 secret access key
11008
11117
  - s3Bucket: Name of the S3 bucket
11009
11118
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
11119
+ - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
11010
11120
  - keychainName: Keychain the items should be imported to
11011
11121
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
11012
11122
  - force: Renew the provisioning profiles every time you run match
11013
11123
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
11124
+ - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
11014
11125
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
11015
- - forceForNewCertificates: Renew the provisioning profiles if the device count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
11126
+ - forceForNewCertificates: Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
11016
11127
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
11128
+ - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
11017
11129
  - skipDocs: Skip generation of a README.md for the created git repository
11018
11130
  - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
11019
11131
  - 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
@@ -11051,18 +11163,22 @@ public func syncCodeSigning(type: String = "development",
11051
11163
  googleCloudBucketName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11052
11164
  googleCloudKeysFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11053
11165
  googleCloudProjectId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11166
+ skipGoogleCloudAccountConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11054
11167
  s3Region: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11055
11168
  s3AccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11056
11169
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11057
11170
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11058
11171
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11172
+ gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11059
11173
  keychainName: String = "login.keychain",
11060
11174
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11061
11175
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11062
11176
  forceForNewDevices: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11177
+ includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11063
11178
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11064
11179
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11065
11180
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11181
+ safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11066
11182
  skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11067
11183
  platform: String = "ios",
11068
11184
  deriveCatalystAppIdentifier: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -11098,18 +11214,22 @@ public func syncCodeSigning(type: String = "development",
11098
11214
  let googleCloudBucketNameArg = googleCloudBucketName.asRubyArgument(name: "google_cloud_bucket_name", type: nil)
11099
11215
  let googleCloudKeysFileArg = googleCloudKeysFile.asRubyArgument(name: "google_cloud_keys_file", type: nil)
11100
11216
  let googleCloudProjectIdArg = googleCloudProjectId.asRubyArgument(name: "google_cloud_project_id", type: nil)
11217
+ let skipGoogleCloudAccountConfirmationArg = skipGoogleCloudAccountConfirmation.asRubyArgument(name: "skip_google_cloud_account_confirmation", type: nil)
11101
11218
  let s3RegionArg = s3Region.asRubyArgument(name: "s3_region", type: nil)
11102
11219
  let s3AccessKeyArg = s3AccessKey.asRubyArgument(name: "s3_access_key", type: nil)
11103
11220
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
11104
11221
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
11105
11222
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
11223
+ let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
11106
11224
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
11107
11225
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
11108
11226
  let forceArg = force.asRubyArgument(name: "force", type: nil)
11109
11227
  let forceForNewDevicesArg = forceForNewDevices.asRubyArgument(name: "force_for_new_devices", type: nil)
11228
+ let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
11110
11229
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
11111
11230
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
11112
11231
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
11232
+ let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
11113
11233
  let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
11114
11234
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
11115
11235
  let deriveCatalystAppIdentifierArg = deriveCatalystAppIdentifier.asRubyArgument(name: "derive_catalyst_app_identifier", type: nil)
@@ -11144,18 +11264,22 @@ public func syncCodeSigning(type: String = "development",
11144
11264
  googleCloudBucketNameArg,
11145
11265
  googleCloudKeysFileArg,
11146
11266
  googleCloudProjectIdArg,
11267
+ skipGoogleCloudAccountConfirmationArg,
11147
11268
  s3RegionArg,
11148
11269
  s3AccessKeyArg,
11149
11270
  s3SecretAccessKeyArg,
11150
11271
  s3BucketArg,
11151
11272
  s3ObjectPrefixArg,
11273
+ gitlabProjectArg,
11152
11274
  keychainNameArg,
11153
11275
  keychainPasswordArg,
11154
11276
  forceArg,
11155
11277
  forceForNewDevicesArg,
11278
+ includeMacInProfilesArg,
11156
11279
  includeAllCertificatesArg,
11157
11280
  forceForNewCertificatesArg,
11158
11281
  skipConfirmationArg,
11282
+ safeRemoveCertsArg,
11159
11283
  skipDocsArg,
11160
11284
  platformArg,
11161
11285
  deriveCatalystAppIdentifierArg,
@@ -11300,6 +11424,7 @@ public func testfairy(apiKey: String,
11300
11424
  - waitProcessingTimeoutDuration: Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will `force stop` to wait for App Store Connect processing and exit with exception
11301
11425
  - waitForUploadedBuild: **DEPRECATED!** No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used
11302
11426
  - rejectBuildWaitingForReview: Expire previous if it's 'waiting for review'
11427
+ - submitBetaReview: Send the build for a beta review
11303
11428
 
11304
11429
  More details can be found on https://docs.fastlane.tools/actions/pilot/.
11305
11430
  This integration will only do the TestFlight upload.
@@ -11341,7 +11466,8 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11341
11466
  waitProcessingInterval: Int = 30,
11342
11467
  waitProcessingTimeoutDuration: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
11343
11468
  waitForUploadedBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11344
- rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false))
11469
+ rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11470
+ submitBetaReview: OptionalConfigValue<Bool> = .fastlaneDefault(true))
11345
11471
  {
11346
11472
  let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
11347
11473
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
@@ -11381,6 +11507,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11381
11507
  let waitProcessingTimeoutDurationArg = waitProcessingTimeoutDuration.asRubyArgument(name: "wait_processing_timeout_duration", type: nil)
11382
11508
  let waitForUploadedBuildArg = waitForUploadedBuild.asRubyArgument(name: "wait_for_uploaded_build", type: nil)
11383
11509
  let rejectBuildWaitingForReviewArg = rejectBuildWaitingForReview.asRubyArgument(name: "reject_build_waiting_for_review", type: nil)
11510
+ let submitBetaReviewArg = submitBetaReview.asRubyArgument(name: "submit_beta_review", type: nil)
11384
11511
  let array: [RubyCommand.Argument?] = [apiKeyPathArg,
11385
11512
  apiKeyArg,
11386
11513
  usernameArg,
@@ -11418,7 +11545,8 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11418
11545
  waitProcessingIntervalArg,
11419
11546
  waitProcessingTimeoutDurationArg,
11420
11547
  waitForUploadedBuildArg,
11421
- rejectBuildWaitingForReviewArg]
11548
+ rejectBuildWaitingForReviewArg,
11549
+ submitBetaReviewArg]
11422
11550
  let args: [RubyCommand.Argument] = array
11423
11551
  .filter { $0?.value != nil }
11424
11552
  .compactMap { $0 }
@@ -11432,7 +11560,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11432
11560
  - parameters:
11433
11561
  - path: Path to the directory that should be converted
11434
11562
  - extension: The extension for the newly created file. Usually .xml or .junit
11435
- - outputDirectory: Directoy in which the xml files should be written to. Same directory as source by default
11563
+ - outputDirectory: Directory in which the xml files should be written to. Same directory as source by default
11436
11564
  - outputFilename: Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used)
11437
11565
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter
11438
11566
  - xcprettyNaming: Produces class name and test name identical to xcpretty naming in junit file
@@ -11648,6 +11776,7 @@ public func updateAppIdentifier(xcodeproj: String,
11648
11776
  - parameters:
11649
11777
  - path: Path to your Xcode project
11650
11778
  - useAutomaticSigning: Defines if project should use automatic signing
11779
+ - sdk: Build target SDKs (iphoneos*, macosx*, iphonesimulator*)
11651
11780
  - teamId: Team ID, is used when upgrading project
11652
11781
  - targets: Specify targets you want to toggle the signing mech. (default to all targets)
11653
11782
  - buildConfigurations: Specify build_configurations you want to toggle the signing mech. (default to all configurations)
@@ -11663,6 +11792,7 @@ public func updateAppIdentifier(xcodeproj: String,
11663
11792
  */
11664
11793
  public func updateCodeSigningSettings(path: String,
11665
11794
  useAutomaticSigning: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11795
+ sdk: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11666
11796
  teamId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11667
11797
  targets: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
11668
11798
  buildConfigurations: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -11674,6 +11804,7 @@ public func updateCodeSigningSettings(path: String,
11674
11804
  {
11675
11805
  let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
11676
11806
  let useAutomaticSigningArg = useAutomaticSigning.asRubyArgument(name: "use_automatic_signing", type: nil)
11807
+ let sdkArg = sdk.asRubyArgument(name: "sdk", type: nil)
11677
11808
  let teamIdArg = teamId.asRubyArgument(name: "team_id", type: nil)
11678
11809
  let targetsArg = targets.asRubyArgument(name: "targets", type: nil)
11679
11810
  let buildConfigurationsArg = buildConfigurations.asRubyArgument(name: "build_configurations", type: nil)
@@ -11684,6 +11815,7 @@ public func updateCodeSigningSettings(path: String,
11684
11815
  let bundleIdentifierArg = bundleIdentifier.asRubyArgument(name: "bundle_identifier", type: nil)
11685
11816
  let array: [RubyCommand.Argument?] = [pathArg,
11686
11817
  useAutomaticSigningArg,
11818
+ sdkArg,
11687
11819
  teamIdArg,
11688
11820
  targetsArg,
11689
11821
  buildConfigurationsArg,
@@ -12180,8 +12312,9 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
12180
12312
  - skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
12181
12313
  - force: Skip verification of HTML preview file
12182
12314
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
12183
- - syncScreenshots: Sync screenshots with local ones. This is currently beta optionso set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
12315
+ - syncScreenshots: Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
12184
12316
  - submitForReview: Submit the new version for Review after uploading everything
12317
+ - verifyOnly: Verifies archive with App Store Connect without uploading
12185
12318
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
12186
12319
  - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
12187
12320
  - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
@@ -12253,6 +12386,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12253
12386
  overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12254
12387
  syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12255
12388
  submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12389
+ verifyOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12256
12390
  rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12257
12391
  automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
12258
12392
  autoReleaseDate: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
@@ -12317,6 +12451,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12317
12451
  let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
12318
12452
  let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
12319
12453
  let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
12454
+ let verifyOnlyArg = verifyOnly.asRubyArgument(name: "verify_only", type: nil)
12320
12455
  let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
12321
12456
  let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
12322
12457
  let autoReleaseDateArg = autoReleaseDate.asRubyArgument(name: "auto_release_date", type: nil)
@@ -12380,6 +12515,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12380
12515
  overwriteScreenshotsArg,
12381
12516
  syncScreenshotsArg,
12382
12517
  submitForReviewArg,
12518
+ verifyOnlyArg,
12383
12519
  rejectIfPossibleArg,
12384
12520
  automaticReleaseArg,
12385
12521
  autoReleaseDateArg,
@@ -12695,6 +12831,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
12695
12831
  - waitProcessingTimeoutDuration: Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will `force stop` to wait for App Store Connect processing and exit with exception
12696
12832
  - waitForUploadedBuild: **DEPRECATED!** No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used
12697
12833
  - rejectBuildWaitingForReview: Expire previous if it's 'waiting for review'
12834
+ - submitBetaReview: Send the build for a beta review
12698
12835
 
12699
12836
  More details can be found on https://docs.fastlane.tools/actions/pilot/.
12700
12837
  This integration will only do the TestFlight upload.
@@ -12736,7 +12873,8 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
12736
12873
  waitProcessingInterval: Int = 30,
12737
12874
  waitProcessingTimeoutDuration: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
12738
12875
  waitForUploadedBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12739
- rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false))
12876
+ rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12877
+ submitBetaReview: OptionalConfigValue<Bool> = .fastlaneDefault(true))
12740
12878
  {
12741
12879
  let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
12742
12880
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
@@ -12776,6 +12914,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
12776
12914
  let waitProcessingTimeoutDurationArg = waitProcessingTimeoutDuration.asRubyArgument(name: "wait_processing_timeout_duration", type: nil)
12777
12915
  let waitForUploadedBuildArg = waitForUploadedBuild.asRubyArgument(name: "wait_for_uploaded_build", type: nil)
12778
12916
  let rejectBuildWaitingForReviewArg = rejectBuildWaitingForReview.asRubyArgument(name: "reject_build_waiting_for_review", type: nil)
12917
+ let submitBetaReviewArg = submitBetaReview.asRubyArgument(name: "submit_beta_review", type: nil)
12779
12918
  let array: [RubyCommand.Argument?] = [apiKeyPathArg,
12780
12919
  apiKeyArg,
12781
12920
  usernameArg,
@@ -12813,7 +12952,8 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
12813
12952
  waitProcessingIntervalArg,
12814
12953
  waitProcessingTimeoutDurationArg,
12815
12954
  waitForUploadedBuildArg,
12816
- rejectBuildWaitingForReviewArg]
12955
+ rejectBuildWaitingForReviewArg,
12956
+ submitBetaReviewArg]
12817
12957
  let args: [RubyCommand.Argument] = array
12818
12958
  .filter { $0?.value != nil }
12819
12959
  .compactMap { $0 }
@@ -13059,7 +13199,7 @@ public func xcexport() {
13059
13199
  Change the xcode-path to use. Useful for beta versions of Xcode
13060
13200
 
13061
13201
  Select and build with the Xcode installed at the provided path.
13062
- Use the `xcversion` action if you want to select an Xcode:
13202
+ Use the `xcodes` action if you want to select an Xcode:
13063
13203
  - Based on a version specifier or
13064
13204
  - You don't have known, stable paths, as may happen in a CI environment.
13065
13205
  */
@@ -13129,6 +13269,45 @@ public func xcodebuild() {
13129
13269
  _ = runner.executeCommand(command)
13130
13270
  }
13131
13271
 
13272
+ /**
13273
+ Make sure a certain version of Xcode is installed, installing it only if needed
13274
+
13275
+ - parameters:
13276
+ - version: The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file
13277
+ - updateList: Whether the list of available Xcode versions should be updated before running the install command
13278
+ - selectForCurrentBuildOnly: When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions — when this option is true, this action doesn't require sudo permissions
13279
+ - binaryPath: Where the xcodes binary lives on your system (full path)
13280
+ - xcodesArgs: Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed
13281
+
13282
+ - returns: The path to the newly installed Xcode version
13283
+
13284
+ Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by [xcodes](https://github.com/RobotsAndPencils/xcodes).
13285
+ This will make sure to use the correct Xcode version for later actions.
13286
+ Note that this action depends on [xcodes](https://github.com/RobotsAndPencils/xcodes) CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation
13287
+ */
13288
+ @discardableResult public func xcodes(version: String,
13289
+ updateList: OptionalConfigValue<Bool> = .fastlaneDefault(true),
13290
+ selectForCurrentBuildOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13291
+ binaryPath: String = "/opt/homebrew/bin/xcodes",
13292
+ xcodesArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil)) -> String
13293
+ {
13294
+ let versionArg = RubyCommand.Argument(name: "version", value: version, type: nil)
13295
+ let updateListArg = updateList.asRubyArgument(name: "update_list", type: nil)
13296
+ let selectForCurrentBuildOnlyArg = selectForCurrentBuildOnly.asRubyArgument(name: "select_for_current_build_only", type: nil)
13297
+ let binaryPathArg = RubyCommand.Argument(name: "binary_path", value: binaryPath, type: nil)
13298
+ let xcodesArgsArg = xcodesArgs.asRubyArgument(name: "xcodes_args", type: nil)
13299
+ let array: [RubyCommand.Argument?] = [versionArg,
13300
+ updateListArg,
13301
+ selectForCurrentBuildOnlyArg,
13302
+ binaryPathArg,
13303
+ xcodesArgsArg]
13304
+ let args: [RubyCommand.Argument] = array
13305
+ .filter { $0?.value != nil }
13306
+ .compactMap { $0 }
13307
+ let command = RubyCommand(commandID: "", methodName: "xcodes", className: nil, args: args)
13308
+ return runner.executeCommand(command)
13309
+ }
13310
+
13132
13311
  /**
13133
13312
  Nice code coverage reports without hassle
13134
13313
 
@@ -13191,7 +13370,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13191
13370
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13192
13371
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13193
13372
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13194
- ideFoundationPath: String = "/Applications/Xcode-13.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13373
+ ideFoundationPath: String = "/Applications/Xcode-14.1.0.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13195
13374
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13196
13375
  {
13197
13376
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13282,7 +13461,7 @@ public func xctool() {
13282
13461
  /**
13283
13462
  Select an Xcode to use by version specifier
13284
13463
 
13285
- - parameter version: The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0')
13464
+ - parameter version: The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file
13286
13465
 
13287
13466
  Finds and selects a version of an installed Xcode that best matches the provided [`Gem::Version` requirement specifier](http://www.rubydoc.info/github/rubygems/rubygems/Gem/Version)
13288
13467
  You can either manually provide a specific version using `version:` or you make use of the `.xcode-version` file.
@@ -13394,4 +13573,4 @@ public let snapshotfile: Snapshotfile = .init()
13394
13573
 
13395
13574
  // Please don't remove the lines below
13396
13575
  // They are used to detect outdated files
13397
- // FastlaneRunnerAPIVersion [0.9.147]
13576
+ // FastlaneRunnerAPIVersion [0.9.167]