fastlane 2.236.1 → 2.238.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +109 -102
  3. data/deliver/lib/deliver/options.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/deploygate.rb +3 -2
  5. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +7 -3
  6. data/fastlane/lib/fastlane/actions/hockey.rb +3 -2
  7. data/fastlane/lib/fastlane/actions/installr.rb +3 -2
  8. data/fastlane/lib/fastlane/actions/mailgun.rb +1 -0
  9. data/fastlane/lib/fastlane/actions/notarize.rb +3 -18
  10. data/fastlane/lib/fastlane/actions/register_devices.rb +21 -5
  11. data/fastlane/lib/fastlane/actions/setup_ci.rb +7 -2
  12. data/fastlane/lib/fastlane/actions/spm.rb +6 -0
  13. data/fastlane/lib/fastlane/actions/swiftlint.rb +10 -1
  14. data/fastlane/lib/fastlane/actions/testfairy.rb +5 -3
  15. data/fastlane/lib/fastlane/actions/tryouts.rb +3 -2
  16. data/fastlane/lib/fastlane/actions/update_project_team.rb +17 -9
  17. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +33 -7
  18. data/fastlane/lib/fastlane/helper/sh_helper.rb +7 -3
  19. data/fastlane/lib/fastlane/lane_manager.rb +0 -1
  20. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +0 -7
  21. data/fastlane/lib/fastlane/plugins/template/.gitignore +0 -1
  22. data/fastlane/lib/fastlane/plugins/template/.rspec +0 -2
  23. data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +0 -2
  24. data/fastlane/lib/fastlane/version.rb +1 -1
  25. data/fastlane/swift/Deliverfile.swift +1 -1
  26. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  27. data/fastlane/swift/Fastlane.swift +50 -20
  28. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +1 -1
  29. data/fastlane/swift/Gymfile.swift +1 -1
  30. data/fastlane/swift/GymfileProtocol.swift +1 -1
  31. data/fastlane/swift/Matchfile.swift +1 -1
  32. data/fastlane/swift/MatchfileProtocol.swift +8 -1
  33. data/fastlane/swift/Precheckfile.swift +1 -1
  34. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  35. data/fastlane/swift/Scanfile.swift +1 -1
  36. data/fastlane/swift/ScanfileProtocol.swift +8 -1
  37. data/fastlane/swift/Screengrabfile.swift +1 -1
  38. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  39. data/fastlane/swift/Snapshotfile.swift +1 -1
  40. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  41. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +31 -5
  42. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +24 -12
  43. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +22 -12
  44. data/fastlane_core/lib/fastlane_core/cert_checker.rb +22 -9
  45. data/fastlane_core/lib/fastlane_core/helper.rb +4 -3
  46. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +6 -2
  47. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -1
  48. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
  49. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
  50. data/fastlane_core/lib/fastlane_core/print_table.rb +0 -16
  51. data/fastlane_core/lib/fastlane_core/project.rb +3 -1
  52. data/fastlane_core/lib/fastlane_core/queue_worker.rb +10 -1
  53. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +6 -0
  54. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
  55. data/fastlane_core/lib/fastlane_core/video_utils.rb +4 -2
  56. data/gym/lib/gym/error_handler.rb +11 -1
  57. data/gym/lib/gym/generators/build_command_generator.rb +2 -0
  58. data/gym/lib/gym/module.rb +20 -2
  59. data/match/lib/match/options.rb +8 -0
  60. data/match/lib/match/runner.rb +4 -2
  61. data/match/lib/match/storage/git_storage.rb +18 -2
  62. data/pilot/lib/pilot/build_manager.rb +2 -2
  63. data/pilot/lib/pilot/options.rb +2 -2
  64. data/pilot/lib/pilot/tester_manager.rb +2 -2
  65. data/precheck/lib/precheck/rules/copyright_date_rule.rb +16 -10
  66. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +2 -2
  67. data/scan/lib/scan/options.rb +5 -0
  68. data/scan/lib/scan/runner.rb +1 -0
  69. data/scan/lib/scan/test_command_generator.rb +2 -0
  70. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
  71. data/spaceship/lib/spaceship/client.rb +0 -1
  72. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +1 -1
  73. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +6 -0
  74. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
  75. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +7 -2
  76. data/spaceship/lib/spaceship/helper/plist_middleware.rb +37 -8
  77. data/supply/lib/supply/uploader.rb +7 -1
  78. data/trainer/lib/trainer/xcresult/test_case.rb +21 -2
  79. data/trainer/lib/trainer/xcresult/test_plan.rb +3 -3
  80. data/trainer/lib/trainer/xcresult/test_suite.rb +28 -19
  81. metadata +74 -32
@@ -684,7 +684,7 @@ public func appledoc(input: [String],
684
684
  - teamName: The name of your App Store Connect team if you're in multiple teams
685
685
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
686
686
  - devPortalTeamName: The name of your Developer Portal team if you're in multiple teams
687
- - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
687
+ - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
688
688
  - providerPublicId: The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
689
689
  - runPrecheckBeforeSubmit: Run precheck before submitting to app review
690
690
  - precheckDefaultRuleLevel: The default precheck rule level unless otherwise configured
@@ -2958,7 +2958,7 @@ public func chatwork(apiToken: String,
2958
2958
  - curseWords: including words that might be considered objectionable
2959
2959
  - freeStuffInIap: using text indicating that your IAP is free
2960
2960
  - customText: mentioning any of the user-specified words passed to custom_text(data: [words])
2961
- - copyrightDate: using a copyright date that is any different from this current year, or missing a date
2961
+ - copyrightDate: using a copyright year in the future, or missing a copyright year
2962
2962
  - unreachableUrls: unreachable URLs in app metadata
2963
2963
 
2964
2964
  - returns: true if precheck passes, else, false
@@ -3847,7 +3847,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3847
3847
  - teamName: The name of your App Store Connect team if you're in multiple teams
3848
3848
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
3849
3849
  - devPortalTeamName: The name of your Developer Portal team if you're in multiple teams
3850
- - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
3850
+ - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
3851
3851
  - providerPublicId: The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
3852
3852
  - runPrecheckBeforeSubmit: Run precheck before submitting to app review
3853
3853
  - precheckDefaultRuleLevel: The default precheck rule level unless otherwise configured
@@ -6909,6 +6909,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
6909
6909
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
6910
6910
  - certificateId: Select certificate by id. Useful if multiple certificates are stored in one place
6911
6911
  - 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'
6912
+ - renewExpiredCerts: Automatically renew expired certificates. Note: to renew `developer_id` and `developer_id_installer` certificates you must log in with the Account Holder account by using username and password; App Store Connect API key doesn't work in this case. The expired certificate is removed from the match storage and a new one is created, but the old certificate is not revoked on the Apple Developer Portal — run `fastlane match nuke` if you need to free up certificate slots
6912
6913
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
6913
6914
  - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
6914
6915
  - skipDocs: Skip generation of a README.md for the created git repository
@@ -6969,6 +6970,7 @@ public func match(type: String = matchfile.type,
6969
6970
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.includeAllCertificates),
6970
6971
  certificateId: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.certificateId),
6971
6972
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.forceForNewCertificates),
6973
+ renewExpiredCerts: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.renewExpiredCerts),
6972
6974
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipConfirmation),
6973
6975
  safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.safeRemoveCerts),
6974
6976
  skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipDocs),
@@ -7027,6 +7029,7 @@ public func match(type: String = matchfile.type,
7027
7029
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
7028
7030
  let certificateIdArg = certificateId.asRubyArgument(name: "certificate_id", type: nil)
7029
7031
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
7032
+ let renewExpiredCertsArg = renewExpiredCerts.asRubyArgument(name: "renew_expired_certs", type: nil)
7030
7033
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
7031
7034
  let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
7032
7035
  let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
@@ -7084,6 +7087,7 @@ public func match(type: String = matchfile.type,
7084
7087
  includeAllCertificatesArg,
7085
7088
  certificateIdArg,
7086
7089
  forceForNewCertificatesArg,
7090
+ renewExpiredCertsArg,
7087
7091
  skipConfirmationArg,
7088
7092
  safeRemoveCertsArg,
7089
7093
  skipDocsArg,
@@ -7152,6 +7156,7 @@ public func match(type: String = matchfile.type,
7152
7156
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
7153
7157
  - certificateId: Select certificate by id. Useful if multiple certificates are stored in one place
7154
7158
  - 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'
7159
+ - renewExpiredCerts: Automatically renew expired certificates. Note: to renew `developer_id` and `developer_id_installer` certificates you must log in with the Account Holder account by using username and password; App Store Connect API key doesn't work in this case. The expired certificate is removed from the match storage and a new one is created, but the old certificate is not revoked on the Apple Developer Portal — run `fastlane match nuke` if you need to free up certificate slots
7155
7160
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
7156
7161
  - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
7157
7162
  - skipDocs: Skip generation of a README.md for the created git repository
@@ -7216,6 +7221,7 @@ public func matchNuke(type: String = "development",
7216
7221
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7217
7222
  certificateId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7218
7223
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7224
+ renewExpiredCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7219
7225
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7220
7226
  safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7221
7227
  skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -7274,6 +7280,7 @@ public func matchNuke(type: String = "development",
7274
7280
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
7275
7281
  let certificateIdArg = certificateId.asRubyArgument(name: "certificate_id", type: nil)
7276
7282
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
7283
+ let renewExpiredCertsArg = renewExpiredCerts.asRubyArgument(name: "renew_expired_certs", type: nil)
7277
7284
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
7278
7285
  let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
7279
7286
  let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
@@ -7331,6 +7338,7 @@ public func matchNuke(type: String = "development",
7331
7338
  includeAllCertificatesArg,
7332
7339
  certificateIdArg,
7333
7340
  forceForNewCertificatesArg,
7341
+ renewExpiredCertsArg,
7334
7342
  skipConfirmationArg,
7335
7343
  safeRemoveCertsArg,
7336
7344
  skipDocsArg,
@@ -7485,7 +7493,6 @@ public func nexusUpload(file: String,
7485
7493
  - parameters:
7486
7494
  - package: Path to package to notarize, e.g. .app bundle or disk image
7487
7495
  - skipStapling: Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives
7488
- - bundleId: Bundle identifier to uniquely identify the package
7489
7496
  - username: Apple ID username
7490
7497
  - ascProvider: Provider short name for accounts associated with multiple providers
7491
7498
  - printLog: Whether to print notarization log file, listing issues on failure and warnings on success
@@ -7495,7 +7502,6 @@ public func nexusUpload(file: String,
7495
7502
  */
7496
7503
  public func notarize(package: String,
7497
7504
  skipStapling: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7498
- bundleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7499
7505
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7500
7506
  ascProvider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7501
7507
  printLog: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -7505,7 +7511,6 @@ public func notarize(package: String,
7505
7511
  {
7506
7512
  let packageArg = RubyCommand.Argument(name: "package", value: package, type: nil)
7507
7513
  let skipStaplingArg = skipStapling.asRubyArgument(name: "skip_stapling", type: nil)
7508
- let bundleIdArg = bundleId.asRubyArgument(name: "bundle_id", type: nil)
7509
7514
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
7510
7515
  let ascProviderArg = ascProvider.asRubyArgument(name: "asc_provider", type: nil)
7511
7516
  let printLogArg = printLog.asRubyArgument(name: "print_log", type: nil)
@@ -7514,7 +7519,6 @@ public func notarize(package: String,
7514
7519
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
7515
7520
  let array: [RubyCommand.Argument?] = [packageArg,
7516
7521
  skipStaplingArg,
7517
- bundleIdArg,
7518
7522
  usernameArg,
7519
7523
  ascProviderArg,
7520
7524
  printLogArg,
@@ -7895,11 +7899,11 @@ public func pem(platform: String = "ios",
7895
7899
  - lastName: The tester's last name
7896
7900
  - email: The tester's email
7897
7901
  - testersFilePath: Path to a CSV file of testers
7898
- - groups: Associate tester to one group or more by group name / group id. E.g. `-g "Team 1","Team 2"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups
7902
+ - groups: Associate tester to one group or more by group name / group id. E.g. `-g "Team 1","a06cf5b5-95a9-4beb-88c6-f22bd6b3f7a2"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups
7899
7903
  - teamId: The ID of your App Store Connect team if you're in multiple teams
7900
7904
  - teamName: The name of your App Store Connect team if you're in multiple teams
7901
7905
  - devPortalTeamId: The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID!
7902
- - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
7906
+ - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
7903
7907
  - providerPublicId: The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
7904
7908
  - waitProcessingInterval: Interval in seconds to wait for App Store Connect processing
7905
7909
  - 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
@@ -8682,6 +8686,7 @@ public func recreateSchemes(project: String) {
8682
8686
  This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles.
8683
8687
  This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work.
8684
8688
  The action will connect to the Apple Developer Portal using the username you specified in your `Appfile` with `apple_id`, but you can override it using the `username` option, or by setting the env variable `ENV['DELIVER_USER']`.
8689
+ When using `devices_file`, blank lines and lines starting with `#` are ignored, so you can group devices, add notes, or comment out a device row without removing it.
8685
8690
  */
8686
8691
  public func registerDevices(devices: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
8687
8692
  devicesFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -8959,6 +8964,7 @@ public func rubyVersion() {
8959
8964
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
8960
8965
  - 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/)
8961
8966
  - outputRemoveRetryAttempts: Remove retry attempts from test results table and the JUnit report (if not using xcpretty)
8967
+ - forceLegacyXcresulttool: Force the use of the '--legacy' flag for xcresulttool instead of using the new commands
8962
8968
  - disableXcpretty: **DEPRECATED!** Use `output_style: 'raw'` instead - Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
8963
8969
  - formatter: **DEPRECATED!** Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use
8964
8970
  - xcprettyFormatter: A custom xcpretty formatter to use
@@ -9045,6 +9051,7 @@ public func rubyVersion() {
9045
9051
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
9046
9052
  xcodebuildFormatter: String = "xcbeautify",
9047
9053
  outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9054
+ forceLegacyXcresulttool: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9048
9055
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
9049
9056
  formatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
9050
9057
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -9127,6 +9134,7 @@ public func rubyVersion() {
9127
9134
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
9128
9135
  let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
9129
9136
  let outputRemoveRetryAttemptsArg = outputRemoveRetryAttempts.asRubyArgument(name: "output_remove_retry_attempts", type: nil)
9137
+ let forceLegacyXcresulttoolArg = forceLegacyXcresulttool.asRubyArgument(name: "force_legacy_xcresulttool", type: nil)
9130
9138
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
9131
9139
  let formatterArg = formatter.asRubyArgument(name: "formatter", type: nil)
9132
9140
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
@@ -9208,6 +9216,7 @@ public func rubyVersion() {
9208
9216
  suppressXcodeOutputArg,
9209
9217
  xcodebuildFormatterArg,
9210
9218
  outputRemoveRetryAttemptsArg,
9219
+ forceLegacyXcresulttoolArg,
9211
9220
  disableXcprettyArg,
9212
9221
  formatterArg,
9213
9222
  xcprettyFormatterArg,
@@ -9402,6 +9411,7 @@ public func say(text: [String],
9402
9411
  - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
9403
9412
  - 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/)
9404
9413
  - outputRemoveRetryAttempts: Remove retry attempts from test results table and the JUnit report (if not using xcpretty)
9414
+ - forceLegacyXcresulttool: Force the use of the '--legacy' flag for xcresulttool instead of using the new commands
9405
9415
  - disableXcpretty: **DEPRECATED!** Use `output_style: 'raw'` instead - Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
9406
9416
  - formatter: **DEPRECATED!** Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use
9407
9417
  - xcprettyFormatter: A custom xcpretty formatter to use
@@ -9488,6 +9498,7 @@ public func say(text: [String],
9488
9498
  suppressXcodeOutput: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.suppressXcodeOutput),
9489
9499
  xcodebuildFormatter: String = scanfile.xcodebuildFormatter,
9490
9500
  outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.outputRemoveRetryAttempts),
9501
+ forceLegacyXcresulttool: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.forceLegacyXcresulttool),
9491
9502
  disableXcpretty: OptionalConfigValue<Bool?> = .fastlaneDefault(scanfile.disableXcpretty),
9492
9503
  formatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.formatter),
9493
9504
  xcprettyFormatter: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.xcprettyFormatter),
@@ -9570,6 +9581,7 @@ public func say(text: [String],
9570
9581
  let suppressXcodeOutputArg = suppressXcodeOutput.asRubyArgument(name: "suppress_xcode_output", type: nil)
9571
9582
  let xcodebuildFormatterArg = RubyCommand.Argument(name: "xcodebuild_formatter", value: xcodebuildFormatter, type: nil)
9572
9583
  let outputRemoveRetryAttemptsArg = outputRemoveRetryAttempts.asRubyArgument(name: "output_remove_retry_attempts", type: nil)
9584
+ let forceLegacyXcresulttoolArg = forceLegacyXcresulttool.asRubyArgument(name: "force_legacy_xcresulttool", type: nil)
9573
9585
  let disableXcprettyArg = disableXcpretty.asRubyArgument(name: "disable_xcpretty", type: nil)
9574
9586
  let formatterArg = formatter.asRubyArgument(name: "formatter", type: nil)
9575
9587
  let xcprettyFormatterArg = xcprettyFormatter.asRubyArgument(name: "xcpretty_formatter", type: nil)
@@ -9651,6 +9663,7 @@ public func say(text: [String],
9651
9663
  suppressXcodeOutputArg,
9652
9664
  xcodebuildFormatterArg,
9653
9665
  outputRemoveRetryAttemptsArg,
9666
+ forceLegacyXcresulttoolArg,
9654
9667
  disableXcprettyArg,
9655
9668
  formatterArg,
9656
9669
  xcprettyFormatterArg,
@@ -10060,6 +10073,7 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
10060
10073
  - provider: CI provider. If none is set, the provider is detected automatically
10061
10074
  - timeout: Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'
10062
10075
  - keychainName: Set a custom keychain name
10076
+ - setDefaultKeychain: Set the temporary keychain as the system default
10063
10077
 
10064
10078
  - Creates a new temporary keychain for use with match|
10065
10079
  - Switches match to `readonly` mode to not create new profiles/cert on CI|
@@ -10070,16 +10084,19 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
10070
10084
  public func setupCi(force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10071
10085
  provider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10072
10086
  timeout: Int = 3600,
10073
- keychainName: String = "fastlane_tmp_keychain")
10087
+ keychainName: String = "fastlane_tmp_keychain",
10088
+ setDefaultKeychain: OptionalConfigValue<Bool> = .fastlaneDefault(true))
10074
10089
  {
10075
10090
  let forceArg = force.asRubyArgument(name: "force", type: nil)
10076
10091
  let providerArg = provider.asRubyArgument(name: "provider", type: nil)
10077
10092
  let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
10078
10093
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
10094
+ let setDefaultKeychainArg = setDefaultKeychain.asRubyArgument(name: "set_default_keychain", type: nil)
10079
10095
  let array: [RubyCommand.Argument?] = [forceArg,
10080
10096
  providerArg,
10081
10097
  timeoutArg,
10082
- keychainNameArg]
10098
+ keychainNameArg,
10099
+ setDefaultKeychainArg]
10083
10100
  let args: [RubyCommand.Argument] = array
10084
10101
  .filter { $0?.value != nil }
10085
10102
  .compactMap { $0 }
@@ -11088,6 +11105,7 @@ public func splunkmint(dsym: OptionalConfigValue<String?> = .fastlaneDefault(nil
11088
11105
  - disableSandbox: Disable using the sandbox when executing subprocesses
11089
11106
  - xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
11090
11107
  - xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
11108
+ - skipUpdate: Skip updating dependencies from their remote during a resolution
11091
11109
  - verbose: Increase verbosity of informational output
11092
11110
  - veryVerbose: Increase verbosity to include debug output
11093
11111
  - simulator: Specifies the simulator to pass for Swift Compiler (one of: iphonesimulator, macosx)
@@ -11104,6 +11122,7 @@ public func spm(command: String = "build",
11104
11122
  disableSandbox: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11105
11123
  xcprettyOutput: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11106
11124
  xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11125
+ skipUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11107
11126
  verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11108
11127
  veryVerbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11109
11128
  simulator: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -11120,6 +11139,7 @@ public func spm(command: String = "build",
11120
11139
  let disableSandboxArg = disableSandbox.asRubyArgument(name: "disable_sandbox", type: nil)
11121
11140
  let xcprettyOutputArg = xcprettyOutput.asRubyArgument(name: "xcpretty_output", type: nil)
11122
11141
  let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
11142
+ let skipUpdateArg = skipUpdate.asRubyArgument(name: "skip_update", type: nil)
11123
11143
  let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
11124
11144
  let veryVerboseArg = veryVerbose.asRubyArgument(name: "very_verbose", type: nil)
11125
11145
  let simulatorArg = simulator.asRubyArgument(name: "simulator", type: nil)
@@ -11135,6 +11155,7 @@ public func spm(command: String = "build",
11135
11155
  disableSandboxArg,
11136
11156
  xcprettyOutputArg,
11137
11157
  xcprettyArgsArg,
11158
+ skipUpdateArg,
11138
11159
  verboseArg,
11139
11160
  veryVerboseArg,
11140
11161
  simulatorArg,
@@ -11481,6 +11502,7 @@ public func swiftlint(mode: String = "lint",
11481
11502
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
11482
11503
  - certificateId: Select certificate by id. Useful if multiple certificates are stored in one place
11483
11504
  - 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'
11505
+ - renewExpiredCerts: Automatically renew expired certificates. Note: to renew `developer_id` and `developer_id_installer` certificates you must log in with the Account Holder account by using username and password; App Store Connect API key doesn't work in this case. The expired certificate is removed from the match storage and a new one is created, but the old certificate is not revoked on the Apple Developer Portal — run `fastlane match nuke` if you need to free up certificate slots
11484
11506
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
11485
11507
  - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
11486
11508
  - skipDocs: Skip generation of a README.md for the created git repository
@@ -11541,6 +11563,7 @@ public func syncCodeSigning(type: String = "development",
11541
11563
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11542
11564
  certificateId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11543
11565
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11566
+ renewExpiredCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11544
11567
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11545
11568
  safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11546
11569
  skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -11599,6 +11622,7 @@ public func syncCodeSigning(type: String = "development",
11599
11622
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
11600
11623
  let certificateIdArg = certificateId.asRubyArgument(name: "certificate_id", type: nil)
11601
11624
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
11625
+ let renewExpiredCertsArg = renewExpiredCerts.asRubyArgument(name: "renew_expired_certs", type: nil)
11602
11626
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
11603
11627
  let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
11604
11628
  let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
@@ -11656,6 +11680,7 @@ public func syncCodeSigning(type: String = "development",
11656
11680
  includeAllCertificatesArg,
11657
11681
  certificateIdArg,
11658
11682
  forceForNewCertificatesArg,
11683
+ renewExpiredCertsArg,
11659
11684
  skipConfirmationArg,
11660
11685
  safeRemoveCertsArg,
11661
11686
  skipDocsArg,
@@ -11818,11 +11843,11 @@ public func testfairy(apiKey: String,
11818
11843
  - lastName: The tester's last name
11819
11844
  - email: The tester's email
11820
11845
  - testersFilePath: Path to a CSV file of testers
11821
- - groups: Associate tester to one group or more by group name / group id. E.g. `-g "Team 1","Team 2"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups
11846
+ - groups: Associate tester to one group or more by group name / group id. E.g. `-g "Team 1","a06cf5b5-95a9-4beb-88c6-f22bd6b3f7a2"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups
11822
11847
  - teamId: The ID of your App Store Connect team if you're in multiple teams
11823
11848
  - teamName: The name of your App Store Connect team if you're in multiple teams
11824
11849
  - devPortalTeamId: The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID!
11825
- - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
11850
+ - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
11826
11851
  - providerPublicId: The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
11827
11852
  - waitProcessingInterval: Interval in seconds to wait for App Store Connect processing
11828
11853
  - 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
@@ -12518,7 +12543,7 @@ public func updateProjectProvisioning(xcodeproj: OptionalConfigValue<String?> =
12518
12543
  - targets: Name of the targets you want to update
12519
12544
  - teamid: The Team ID you want to use
12520
12545
 
12521
- This action updates the Developer Team ID of your Xcode project.
12546
+ This action updates (or adds) the Developer Team ID of your Xcode project.
12522
12547
  */
12523
12548
  public func updateProjectTeam(path: String,
12524
12549
  targets: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -12667,9 +12692,11 @@ public func uploadAppPrivacyDetailsToAppStore(username: String,
12667
12692
  - binaryPath: The path to the upload-symbols file of the Fabric app
12668
12693
  - platform: The platform of the app (ios, appletvos, mac)
12669
12694
  - dsymWorkerThreads: The number of threads to use for simultaneous dSYM upload
12695
+ - failOnError: Should the action fail when an upload fails?
12670
12696
  - debug: Enable debug mode for upload-symbols
12671
12697
 
12672
- This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build.
12698
+ This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed by default.
12699
+ The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. However, fail_on_build parameter can be used to prevent this behavior.
12673
12700
  */
12674
12701
  public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji2.dSYM",
12675
12702
  dsymPaths: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -12679,6 +12706,7 @@ public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/
12679
12706
  binaryPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12680
12707
  platform: String = "ios",
12681
12708
  dsymWorkerThreads: Int = 1,
12709
+ failOnError: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12682
12710
  debug: OptionalConfigValue<Bool> = .fastlaneDefault(false))
12683
12711
  {
12684
12712
  let dsymPathArg = RubyCommand.Argument(name: "dsym_path", value: dsymPath, type: nil)
@@ -12689,6 +12717,7 @@ public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/
12689
12717
  let binaryPathArg = binaryPath.asRubyArgument(name: "binary_path", type: nil)
12690
12718
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
12691
12719
  let dsymWorkerThreadsArg = RubyCommand.Argument(name: "dsym_worker_threads", value: dsymWorkerThreads, type: nil)
12720
+ let failOnErrorArg = failOnError.asRubyArgument(name: "fail_on_error", type: nil)
12692
12721
  let debugArg = debug.asRubyArgument(name: "debug", type: nil)
12693
12722
  let array: [RubyCommand.Argument?] = [dsymPathArg,
12694
12723
  dsymPathsArg,
@@ -12698,6 +12727,7 @@ public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/
12698
12727
  binaryPathArg,
12699
12728
  platformArg,
12700
12729
  dsymWorkerThreadsArg,
12730
+ failOnErrorArg,
12701
12731
  debugArg]
12702
12732
  let args: [RubyCommand.Argument] = array
12703
12733
  .filter { $0?.value != nil }
@@ -12796,7 +12826,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
12796
12826
  - teamName: The name of your App Store Connect team if you're in multiple teams
12797
12827
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
12798
12828
  - devPortalTeamName: The name of your Developer Portal team if you're in multiple teams
12799
- - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
12829
+ - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
12800
12830
  - providerPublicId: The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
12801
12831
  - runPrecheckBeforeSubmit: Run precheck before submitting to app review
12802
12832
  - precheckDefaultRuleLevel: The default precheck rule level unless otherwise configured
@@ -13334,11 +13364,11 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
13334
13364
  - lastName: The tester's last name
13335
13365
  - email: The tester's email
13336
13366
  - testersFilePath: Path to a CSV file of testers
13337
- - groups: Associate tester to one group or more by group name / group id. E.g. `-g "Team 1","Team 2"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups
13367
+ - groups: Associate tester to one group or more by group name / group id. E.g. `-g "Team 1","a06cf5b5-95a9-4beb-88c6-f22bd6b3f7a2"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups
13338
13368
  - teamId: The ID of your App Store Connect team if you're in multiple teams
13339
13369
  - teamName: The name of your App Store Connect team if you're in multiple teams
13340
13370
  - devPortalTeamId: The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID!
13341
- - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
13371
+ - itcProvider: The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column
13342
13372
  - providerPublicId: The provider public ID to be used with altool (--provider-public-id). This value will override the automatically detected provider value for altool uploads. Required after Xcode 26 when your account is associated with multiple providers and using username/app-password authentication
13343
13373
  - waitProcessingInterval: Interval in seconds to wait for App Store Connect processing
13344
13374
  - 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
@@ -13902,7 +13932,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13902
13932
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13903
13933
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13904
13934
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13905
- ideFoundationPath: String = "/Applications/Xcode_16.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13935
+ ideFoundationPath: String = "/Applications/Xcode_26.6.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13906
13936
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13907
13937
  {
13908
13938
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -14113,4 +14143,4 @@ public let snapshotfile: Snapshotfile = .init()
14113
14143
 
14114
14144
  // Please don't remove the lines below
14115
14145
  // They are used to detect outdated files
14116
- // FastlaneRunnerAPIVersion [0.9.203]
14146
+ // FastlaneRunnerAPIVersion [0.9.205]
@@ -46,7 +46,7 @@
46
46
  C0459CAB27261886002CDFB9 /* CopyFiles */ = {
47
47
  isa = PBXCopyFilesBuildPhase;
48
48
  buildActionMask = 2147483647;
49
- dstPath = "$SRCROOT/../..";
49
+ dstPath = $SRCROOT/../..;
50
50
  dstSubfolderSpec = 0;
51
51
  files = (
52
52
  C0459CAC27261897002CDFB9 /* FastlaneRunner in CopyFiles */,
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.236.1
20
+ // Generated with fastlane 2.238.0
@@ -392,4 +392,4 @@ public extension GymfileProtocol {
392
392
 
393
393
  // Please don't remove the lines below
394
394
  // They are used to detect outdated files
395
- // FastlaneRunnerAPIVersion [0.9.153]
395
+ // FastlaneRunnerAPIVersion [0.9.155]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.236.1
20
+ // Generated with fastlane 2.238.0
@@ -134,6 +134,9 @@ public protocol MatchfileProtocol: AnyObject {
134
134
  /// 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'
135
135
  var forceForNewCertificates: Bool { get }
136
136
 
137
+ /// Automatically renew expired certificates. Note: to renew `developer_id` and `developer_id_installer` certificates you must log in with the Account Holder account by using username and password; App Store Connect API key doesn't work in this case. The expired certificate is removed from the match storage and a new one is created, but the old certificate is not revoked on the Apple Developer Portal — run `fastlane match nuke` if you need to free up certificate slots
138
+ var renewExpiredCerts: Bool { get }
139
+
137
140
  /// Disables confirmation prompts during nuke, answering them with yes
138
141
  var skipConfirmation: Bool { get }
139
142
 
@@ -351,6 +354,10 @@ public extension MatchfileProtocol {
351
354
  return false
352
355
  }
353
356
 
357
+ var renewExpiredCerts: Bool {
358
+ return false
359
+ }
360
+
354
361
  var skipConfirmation: Bool {
355
362
  return false
356
363
  }
@@ -406,4 +413,4 @@ public extension MatchfileProtocol {
406
413
 
407
414
  // Please don't remove the lines below
408
415
  // They are used to detect outdated files
409
- // FastlaneRunnerAPIVersion [0.9.147]
416
+ // FastlaneRunnerAPIVersion [0.9.149]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.236.1
20
+ // Generated with fastlane 2.238.0
@@ -84,4 +84,4 @@ public extension PrecheckfileProtocol {
84
84
 
85
85
  // Please don't remove the lines below
86
86
  // They are used to detect outdated files
87
- // FastlaneRunnerAPIVersion [0.9.146]
87
+ // FastlaneRunnerAPIVersion [0.9.148]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.236.1
20
+ // Generated with fastlane 2.238.0
@@ -107,6 +107,9 @@ public protocol ScanfileProtocol: AnyObject {
107
107
  /// Remove retry attempts from test results table and the JUnit report (if not using xcpretty)
108
108
  var outputRemoveRetryAttempts: Bool { get }
109
109
 
110
+ /// Force the use of the '--legacy' flag for xcresulttool instead of using the new commands
111
+ var forceLegacyXcresulttool: Bool { get }
112
+
110
113
  /// **DEPRECATED!** Use `output_style: 'raw'` instead - Disable xcpretty formatting of build, similar to `output_style='raw'` but this will also skip the test results table
111
114
  var disableXcpretty: Bool? { get }
112
115
 
@@ -387,6 +390,10 @@ public extension ScanfileProtocol {
387
390
  return false
388
391
  }
389
392
 
393
+ var forceLegacyXcresulttool: Bool {
394
+ return false
395
+ }
396
+
390
397
  var disableXcpretty: Bool? {
391
398
  return nil
392
399
  }
@@ -574,4 +581,4 @@ public extension ScanfileProtocol {
574
581
 
575
582
  // Please don't remove the lines below
576
583
  // They are used to detect outdated files
577
- // FastlaneRunnerAPIVersion [0.9.158]
584
+ // FastlaneRunnerAPIVersion [0.9.160]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.236.1
20
+ // Generated with fastlane 2.238.0
@@ -161,4 +161,4 @@ public extension ScreengrabfileProtocol {
161
161
 
162
162
  // Please don't remove the lines below
163
163
  // They are used to detect outdated files
164
- // FastlaneRunnerAPIVersion [0.9.148]
164
+ // FastlaneRunnerAPIVersion [0.9.150]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.236.1
20
+ // Generated with fastlane 2.238.0
@@ -378,4 +378,4 @@ public extension SnapshotfileProtocol {
378
378
 
379
379
  // Please don't remove the lines below
380
380
  // They are used to detect outdated files
381
- // FastlaneRunnerAPIVersion [0.9.142]
381
+ // FastlaneRunnerAPIVersion [0.9.144]
@@ -1,23 +1,49 @@
1
+ require_relative '../helper'
2
+
1
3
  module FastlaneCore
2
4
  class AnalyticsEventBuilder
3
5
  attr_accessor :action_name
4
6
 
5
7
  # fastlane_client_language valid options are :ruby or :swift
6
- def initialize(p_hash: nil, session_id: nil, action_name: nil, fastlane_client_language: :ruby)
8
+ def initialize(p_hash: nil, session_id: nil, action_name: nil, fastlane_client_language: :ruby, build_tool_version: nil)
7
9
  @p_hash = p_hash
8
10
  @session_id = session_id
9
11
  @action_name = action_name
10
12
  @fastlane_client_language = fastlane_client_language
13
+ @build_tool_version = build_tool_version
11
14
  end
12
15
 
13
16
  def new_event(action_stage)
14
17
  {
15
18
  client_id: @p_hash,
16
- category: "fastlane Client Language - #{@fastlane_client_language}",
17
- action: action_stage,
18
- label: action_name,
19
- value: nil
19
+ session_id: @session_id,
20
+ name: action_stage,
21
+ params: {
22
+ fastlane_client_language: @fastlane_client_language,
23
+ fastlane_version: Fastlane::VERSION,
24
+ install_method: install_method,
25
+ ruby_version: RUBY_VERSION,
26
+ operating_system: Helper.operating_system,
27
+ build_tool_version: @build_tool_version,
28
+ ci: Helper.ci?.to_s
29
+ }.reject { |_, value| value.nil? }
20
30
  }
21
31
  end
32
+
33
+ private
34
+
35
+ def install_method
36
+ if Helper.bundler?
37
+ 'bundler'
38
+ elsif Helper.contained_fastlane?
39
+ 'standalone'
40
+ elsif Helper.homebrew?
41
+ 'homebrew'
42
+ elsif Helper.mac_app?
43
+ 'mac_app'
44
+ else
45
+ 'gem'
46
+ end
47
+ end
22
48
  end
23
49
  end