fastlane 2.237.0 → 2.239.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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -100
  3. data/bin/fastlane +2 -2
  4. data/deliver/lib/deliver/html_generator.rb +1 -1
  5. data/deliver/lib/deliver/options.rb +9 -1
  6. data/deliver/lib/deliver/upload_metadata.rb +22 -0
  7. data/deliver/lib/deliver/upload_screenshots.rb +12 -4
  8. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +7 -2
  9. data/fastlane/lib/fastlane/actions/deploygate.rb +3 -2
  10. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +6 -0
  11. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -2
  12. data/fastlane/lib/fastlane/actions/hockey.rb +3 -2
  13. data/fastlane/lib/fastlane/actions/installr.rb +3 -2
  14. data/fastlane/lib/fastlane/actions/mailgun.rb +1 -0
  15. data/fastlane/lib/fastlane/actions/notarize.rb +3 -18
  16. data/fastlane/lib/fastlane/actions/register_devices.rb +21 -5
  17. data/fastlane/lib/fastlane/actions/setup_ci.rb +7 -2
  18. data/fastlane/lib/fastlane/actions/spm.rb +6 -0
  19. data/fastlane/lib/fastlane/actions/testfairy.rb +5 -3
  20. data/fastlane/lib/fastlane/actions/tryouts.rb +3 -2
  21. data/fastlane/lib/fastlane/actions/update_project_team.rb +17 -9
  22. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +33 -7
  23. data/fastlane/lib/fastlane/helper/git_helper.rb +4 -2
  24. data/fastlane/lib/fastlane/helper/sh_helper.rb +9 -1
  25. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  26. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  27. data/fastlane/lib/fastlane/version.rb +1 -1
  28. data/fastlane/swift/Deliverfile.swift +1 -1
  29. data/fastlane/swift/DeliverfileProtocol.swift +9 -2
  30. data/fastlane/swift/Fastlane.swift +66 -20
  31. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +1 -1
  32. data/fastlane/swift/Gymfile.swift +1 -1
  33. data/fastlane/swift/GymfileProtocol.swift +1 -1
  34. data/fastlane/swift/Matchfile.swift +1 -1
  35. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  36. data/fastlane/swift/Precheckfile.swift +1 -1
  37. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  38. data/fastlane/swift/Scanfile.swift +1 -1
  39. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  40. data/fastlane/swift/Screengrabfile.swift +1 -1
  41. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  42. data/fastlane/swift/Snapshotfile.swift +1 -1
  43. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  44. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +31 -5
  45. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +24 -12
  46. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +22 -12
  47. data/fastlane_core/lib/fastlane_core/cert_checker.rb +22 -9
  48. data/fastlane_core/lib/fastlane_core/helper.rb +4 -3
  49. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +6 -2
  50. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
  51. data/fastlane_core/lib/fastlane_core/print_table.rb +0 -16
  52. data/fastlane_core/lib/fastlane_core/queue_worker.rb +10 -1
  53. data/fastlane_core/lib/fastlane_core/video_utils.rb +4 -2
  54. data/gym/lib/gym/module.rb +20 -2
  55. data/match/lib/match/nuke.rb +2 -2
  56. data/match/lib/match/storage/git_storage.rb +1 -4
  57. data/match/lib/match/storage/google_cloud_storage.rb +6 -1
  58. data/pem/lib/pem/manager.rb +5 -1
  59. data/pem/lib/pem/options.rb +6 -0
  60. data/pilot/lib/pilot/build_manager.rb +34 -2
  61. data/pilot/lib/pilot/options.rb +10 -2
  62. data/pilot/lib/pilot/tester_manager.rb +2 -2
  63. data/precheck/lib/precheck/rules/copyright_date_rule.rb +1 -1
  64. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +2 -2
  65. data/sigh/lib/assets/resign.sh +21 -9
  66. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
  67. data/spaceship/lib/spaceship/client.rb +0 -1
  68. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +1 -1
  69. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +6 -0
  70. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +16 -0
  71. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
  72. data/spaceship/lib/spaceship/connect_api/models/routing_app_coverage.rb +75 -0
  73. data/spaceship/lib/spaceship/connect_api/token.rb +6 -1
  74. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +45 -0
  75. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  76. data/spaceship/lib/spaceship/helper/plist_middleware.rb +37 -8
  77. data/supply/lib/supply/client.rb +6 -0
  78. data/supply/lib/supply/reader.rb +15 -0
  79. metadata +79 -53
@@ -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
@@ -702,6 +702,7 @@ public func appledoc(input: [String],
702
702
  - appReviewInformation: Metadata: A hash containing the review information
703
703
  - appClipReviewInformation: Metadata: A hash containing the app clip review information
704
704
  - appReviewAttachmentFile: Metadata: Path to the app review attachment file
705
+ - routingAppCoverageFile: Metadata: Path to the routing app coverage file (`.geojson`) that is required for routing apps
705
706
  - description: Metadata: The localised app description
706
707
  - name: Metadata: The localised app name
707
708
  - subtitle: Metadata: The localised app subtitle
@@ -785,6 +786,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
785
786
  appReviewInformation: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
786
787
  appClipReviewInformation: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
787
788
  appReviewAttachmentFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
789
+ routingAppCoverageFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
788
790
  description: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
789
791
  name: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
790
792
  subtitle: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -861,6 +863,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
861
863
  let appReviewInformationArg = appReviewInformation.asRubyArgument(name: "app_review_information", type: nil)
862
864
  let appClipReviewInformationArg = appClipReviewInformation.asRubyArgument(name: "app_clip_review_information", type: nil)
863
865
  let appReviewAttachmentFileArg = appReviewAttachmentFile.asRubyArgument(name: "app_review_attachment_file", type: nil)
866
+ let routingAppCoverageFileArg = routingAppCoverageFile.asRubyArgument(name: "routing_app_coverage_file", type: nil)
864
867
  let descriptionArg = description.asRubyArgument(name: "description", type: nil)
865
868
  let nameArg = name.asRubyArgument(name: "name", type: nil)
866
869
  let subtitleArg = subtitle.asRubyArgument(name: "subtitle", type: nil)
@@ -936,6 +939,7 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
936
939
  appReviewInformationArg,
937
940
  appClipReviewInformationArg,
938
941
  appReviewAttachmentFileArg,
942
+ routingAppCoverageFileArg,
939
943
  descriptionArg,
940
944
  nameArg,
941
945
  subtitleArg,
@@ -2848,6 +2852,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2848
2852
  - commitsCount: Number of commits to include in changelog, you mustn't use it with :between key at the same time
2849
2853
  - path: Path of the git repository
2850
2854
  - pretty: The format applied to each commit while generating the collected value
2855
+ - matchingPattern: A regexp pattern to filter only the commits matching the pattern
2851
2856
  - dateFormat: The date format applied to each commit while generating the collected value
2852
2857
  - ancestryPath: Whether or not to use ancestry-path param
2853
2858
  - tagMatchPattern: A glob(7) pattern to match against when finding the last git tag
@@ -2865,6 +2870,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2865
2870
  commitsCount: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
2866
2871
  path: String = "./",
2867
2872
  pretty: String = "%B",
2873
+ matchingPattern: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2868
2874
  dateFormat: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2869
2875
  ancestryPath: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2870
2876
  tagMatchPattern: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -2878,6 +2884,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2878
2884
  let commitsCountArg = commitsCount.asRubyArgument(name: "commits_count", type: nil)
2879
2885
  let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
2880
2886
  let prettyArg = RubyCommand.Argument(name: "pretty", value: pretty, type: nil)
2887
+ let matchingPatternArg = matchingPattern.asRubyArgument(name: "matching_pattern", type: nil)
2881
2888
  let dateFormatArg = dateFormat.asRubyArgument(name: "date_format", type: nil)
2882
2889
  let ancestryPathArg = ancestryPath.asRubyArgument(name: "ancestry_path", type: nil)
2883
2890
  let tagMatchPatternArg = tagMatchPattern.asRubyArgument(name: "tag_match_pattern", type: nil)
@@ -2890,6 +2897,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2890
2897
  commitsCountArg,
2891
2898
  pathArg,
2892
2899
  prettyArg,
2900
+ matchingPatternArg,
2893
2901
  dateFormatArg,
2894
2902
  ancestryPathArg,
2895
2903
  tagMatchPatternArg,
@@ -3847,7 +3855,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3847
3855
  - teamName: The name of your App Store Connect team if you're in multiple teams
3848
3856
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
3849
3857
  - 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
3858
+ - 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
3859
  - 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
3860
  - runPrecheckBeforeSubmit: Run precheck before submitting to app review
3853
3861
  - precheckDefaultRuleLevel: The default precheck rule level unless otherwise configured
@@ -3865,6 +3873,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3865
3873
  - appReviewInformation: Metadata: A hash containing the review information
3866
3874
  - appClipReviewInformation: Metadata: A hash containing the app clip review information
3867
3875
  - appReviewAttachmentFile: Metadata: Path to the app review attachment file
3876
+ - routingAppCoverageFile: Metadata: Path to the routing app coverage file (`.geojson`) that is required for routing apps
3868
3877
  - description: Metadata: The localised app description
3869
3878
  - name: Metadata: The localised app name
3870
3879
  - subtitle: Metadata: The localised app subtitle
@@ -3948,6 +3957,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
3948
3957
  appReviewInformation: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(deliverfile.appReviewInformation),
3949
3958
  appClipReviewInformation: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(deliverfile.appClipReviewInformation),
3950
3959
  appReviewAttachmentFile: OptionalConfigValue<String?> = .fastlaneDefault(deliverfile.appReviewAttachmentFile),
3960
+ routingAppCoverageFile: OptionalConfigValue<String?> = .fastlaneDefault(deliverfile.routingAppCoverageFile),
3951
3961
  description: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(deliverfile.description),
3952
3962
  name: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(deliverfile.name),
3953
3963
  subtitle: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(deliverfile.subtitle),
@@ -4024,6 +4034,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
4024
4034
  let appReviewInformationArg = appReviewInformation.asRubyArgument(name: "app_review_information", type: nil)
4025
4035
  let appClipReviewInformationArg = appClipReviewInformation.asRubyArgument(name: "app_clip_review_information", type: nil)
4026
4036
  let appReviewAttachmentFileArg = appReviewAttachmentFile.asRubyArgument(name: "app_review_attachment_file", type: nil)
4037
+ let routingAppCoverageFileArg = routingAppCoverageFile.asRubyArgument(name: "routing_app_coverage_file", type: nil)
4027
4038
  let descriptionArg = description.asRubyArgument(name: "description", type: nil)
4028
4039
  let nameArg = name.asRubyArgument(name: "name", type: nil)
4029
4040
  let subtitleArg = subtitle.asRubyArgument(name: "subtitle", type: nil)
@@ -4099,6 +4110,7 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
4099
4110
  appReviewInformationArg,
4100
4111
  appClipReviewInformationArg,
4101
4112
  appReviewAttachmentFileArg,
4113
+ routingAppCoverageFileArg,
4102
4114
  descriptionArg,
4103
4115
  nameArg,
4104
4116
  subtitleArg,
@@ -5311,6 +5323,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
5311
5323
  - platform: Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos
5312
5324
  - development: Renew the development push certificate instead of the production one
5313
5325
  - websitePush: Create a Website Push certificate
5326
+ - voipPush: Create a VoIP Services certificate
5314
5327
  - generateP12: Generate a p12 file additionally to a PEM file
5315
5328
  - activeDaysLimit: If the current certificate is active for less than this number of days, generate a new one
5316
5329
  - force: Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days
@@ -5339,6 +5352,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
5339
5352
  public func getPushCertificate(platform: String = "ios",
5340
5353
  development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
5341
5354
  websitePush: OptionalConfigValue<Bool> = .fastlaneDefault(false),
5355
+ voipPush: OptionalConfigValue<Bool> = .fastlaneDefault(false),
5342
5356
  generateP12: OptionalConfigValue<Bool> = .fastlaneDefault(true),
5343
5357
  activeDaysLimit: Int = 30,
5344
5358
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -5355,6 +5369,7 @@ public func getPushCertificate(platform: String = "ios",
5355
5369
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
5356
5370
  let developmentArg = development.asRubyArgument(name: "development", type: nil)
5357
5371
  let websitePushArg = websitePush.asRubyArgument(name: "website_push", type: nil)
5372
+ let voipPushArg = voipPush.asRubyArgument(name: "voip_push", type: nil)
5358
5373
  let generateP12Arg = generateP12.asRubyArgument(name: "generate_p12", type: nil)
5359
5374
  let activeDaysLimitArg = RubyCommand.Argument(name: "active_days_limit", value: activeDaysLimit, type: nil)
5360
5375
  let forceArg = force.asRubyArgument(name: "force", type: nil)
@@ -5370,6 +5385,7 @@ public func getPushCertificate(platform: String = "ios",
5370
5385
  let array: [RubyCommand.Argument?] = [platformArg,
5371
5386
  developmentArg,
5372
5387
  websitePushArg,
5388
+ voipPushArg,
5373
5389
  generateP12Arg,
5374
5390
  activeDaysLimitArg,
5375
5391
  forceArg,
@@ -6648,7 +6664,7 @@ public func jazzy(config: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6648
6664
  /**
6649
6665
  Return last git commit hash, abbreviated commit hash, commit message and author
6650
6666
 
6651
- - returns: Returns the following dict: {commit_hash: "commit hash", abbreviated_commit_hash: "abbreviated commit hash" author: "Author", author_email: "author email", message: "commit message"}. Example: {:message=>"message", :author=>"author", :author_email=>"author_email", :commit_hash=>"commit_hash", :abbreviated_commit_hash=>"short_hash"}
6667
+ - returns: Returns the following dict: {commit_hash: "commit hash", abbreviated_commit_hash: "abbreviated commit hash" author: "Author", author_email: "author email", message: "commit message"}. Example: {message: "message", author: "author", author_email: "author_email", commit_hash: "commit_hash", abbreviated_commit_hash: "short_hash"}
6652
6668
  */
6653
6669
  @discardableResult public func lastGitCommit() -> [String: String] {
6654
6670
  let args: [RubyCommand.Argument] = []
@@ -7493,7 +7509,6 @@ public func nexusUpload(file: String,
7493
7509
  - parameters:
7494
7510
  - package: Path to package to notarize, e.g. .app bundle or disk image
7495
7511
  - skipStapling: Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives
7496
- - bundleId: Bundle identifier to uniquely identify the package
7497
7512
  - username: Apple ID username
7498
7513
  - ascProvider: Provider short name for accounts associated with multiple providers
7499
7514
  - printLog: Whether to print notarization log file, listing issues on failure and warnings on success
@@ -7503,7 +7518,6 @@ public func nexusUpload(file: String,
7503
7518
  */
7504
7519
  public func notarize(package: String,
7505
7520
  skipStapling: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7506
- bundleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7507
7521
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7508
7522
  ascProvider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7509
7523
  printLog: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -7513,7 +7527,6 @@ public func notarize(package: String,
7513
7527
  {
7514
7528
  let packageArg = RubyCommand.Argument(name: "package", value: package, type: nil)
7515
7529
  let skipStaplingArg = skipStapling.asRubyArgument(name: "skip_stapling", type: nil)
7516
- let bundleIdArg = bundleId.asRubyArgument(name: "bundle_id", type: nil)
7517
7530
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
7518
7531
  let ascProviderArg = ascProvider.asRubyArgument(name: "asc_provider", type: nil)
7519
7532
  let printLogArg = printLog.asRubyArgument(name: "print_log", type: nil)
@@ -7522,7 +7535,6 @@ public func notarize(package: String,
7522
7535
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
7523
7536
  let array: [RubyCommand.Argument?] = [packageArg,
7524
7537
  skipStaplingArg,
7525
- bundleIdArg,
7526
7538
  usernameArg,
7527
7539
  ascProviderArg,
7528
7540
  printLogArg,
@@ -7790,6 +7802,7 @@ public func optOutUsage() {
7790
7802
  - platform: Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos
7791
7803
  - development: Renew the development push certificate instead of the production one
7792
7804
  - websitePush: Create a Website Push certificate
7805
+ - voipPush: Create a VoIP Services certificate
7793
7806
  - generateP12: Generate a p12 file additionally to a PEM file
7794
7807
  - activeDaysLimit: If the current certificate is active for less than this number of days, generate a new one
7795
7808
  - force: Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days
@@ -7818,6 +7831,7 @@ public func optOutUsage() {
7818
7831
  public func pem(platform: String = "ios",
7819
7832
  development: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7820
7833
  websitePush: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7834
+ voipPush: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7821
7835
  generateP12: OptionalConfigValue<Bool> = .fastlaneDefault(true),
7822
7836
  activeDaysLimit: Int = 30,
7823
7837
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -7834,6 +7848,7 @@ public func pem(platform: String = "ios",
7834
7848
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
7835
7849
  let developmentArg = development.asRubyArgument(name: "development", type: nil)
7836
7850
  let websitePushArg = websitePush.asRubyArgument(name: "website_push", type: nil)
7851
+ let voipPushArg = voipPush.asRubyArgument(name: "voip_push", type: nil)
7837
7852
  let generateP12Arg = generateP12.asRubyArgument(name: "generate_p12", type: nil)
7838
7853
  let activeDaysLimitArg = RubyCommand.Argument(name: "active_days_limit", value: activeDaysLimit, type: nil)
7839
7854
  let forceArg = force.asRubyArgument(name: "force", type: nil)
@@ -7849,6 +7864,7 @@ public func pem(platform: String = "ios",
7849
7864
  let array: [RubyCommand.Argument?] = [platformArg,
7850
7865
  developmentArg,
7851
7866
  websitePushArg,
7867
+ voipPushArg,
7852
7868
  generateP12Arg,
7853
7869
  activeDaysLimitArg,
7854
7870
  forceArg,
@@ -7892,6 +7908,7 @@ public func pem(platform: String = "ios",
7892
7908
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
7893
7909
  - appClipInvocations: Add beta app clip invocations to your builds in TestFlight
7894
7910
  - overwriteAppClipInvocations: Clear all previous beta app clip invocations before adding new ones
7911
+ - routingAppCoverageFile: Path to the routing app coverage file (`.geojson`) that is required for routing apps. It will be uploaded to the editable App Store version of the app
7895
7912
  - distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
7896
7913
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
7897
7914
  - distributeExternal: Should the build be distributed to external testers? If set to true, use of `groups` option is required
@@ -7903,11 +7920,11 @@ public func pem(platform: String = "ios",
7903
7920
  - lastName: The tester's last name
7904
7921
  - email: The tester's email
7905
7922
  - testersFilePath: Path to a CSV file of testers
7906
- - 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
7923
+ - 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
7907
7924
  - teamId: The ID of your App Store Connect team if you're in multiple teams
7908
7925
  - teamName: The name of your App Store Connect team if you're in multiple teams
7909
7926
  - devPortalTeamId: The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID!
7910
- - 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
7927
+ - 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
7911
7928
  - 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
7912
7929
  - waitProcessingInterval: Interval in seconds to wait for App Store Connect processing
7913
7930
  - 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
@@ -7938,6 +7955,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7938
7955
  updateBuildInfoOnUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7939
7956
  appClipInvocations: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
7940
7957
  overwriteAppClipInvocations: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7958
+ routingAppCoverageFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7941
7959
  distributeOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7942
7960
  usesNonExemptEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7943
7961
  distributeExternal: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -7981,6 +7999,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7981
7999
  let updateBuildInfoOnUploadArg = updateBuildInfoOnUpload.asRubyArgument(name: "update_build_info_on_upload", type: nil)
7982
8000
  let appClipInvocationsArg = appClipInvocations.asRubyArgument(name: "app_clip_invocations", type: nil)
7983
8001
  let overwriteAppClipInvocationsArg = overwriteAppClipInvocations.asRubyArgument(name: "overwrite_app_clip_invocations", type: nil)
8002
+ let routingAppCoverageFileArg = routingAppCoverageFile.asRubyArgument(name: "routing_app_coverage_file", type: nil)
7984
8003
  let distributeOnlyArg = distributeOnly.asRubyArgument(name: "distribute_only", type: nil)
7985
8004
  let usesNonExemptEncryptionArg = usesNonExemptEncryption.asRubyArgument(name: "uses_non_exempt_encryption", type: nil)
7986
8005
  let distributeExternalArg = distributeExternal.asRubyArgument(name: "distribute_external", type: nil)
@@ -8023,6 +8042,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
8023
8042
  updateBuildInfoOnUploadArg,
8024
8043
  appClipInvocationsArg,
8025
8044
  overwriteAppClipInvocationsArg,
8045
+ routingAppCoverageFileArg,
8026
8046
  distributeOnlyArg,
8027
8047
  usesNonExemptEncryptionArg,
8028
8048
  distributeExternalArg,
@@ -8690,6 +8710,7 @@ public func recreateSchemes(project: String) {
8690
8710
  This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles.
8691
8711
  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.
8692
8712
  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']`.
8713
+ 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.
8693
8714
  */
8694
8715
  public func registerDevices(devices: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
8695
8716
  devicesFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -10076,6 +10097,7 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
10076
10097
  - provider: CI provider. If none is set, the provider is detected automatically
10077
10098
  - timeout: Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'
10078
10099
  - keychainName: Set a custom keychain name
10100
+ - setDefaultKeychain: Set the temporary keychain as the system default
10079
10101
 
10080
10102
  - Creates a new temporary keychain for use with match|
10081
10103
  - Switches match to `readonly` mode to not create new profiles/cert on CI|
@@ -10086,16 +10108,19 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
10086
10108
  public func setupCi(force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10087
10109
  provider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10088
10110
  timeout: Int = 3600,
10089
- keychainName: String = "fastlane_tmp_keychain")
10111
+ keychainName: String = "fastlane_tmp_keychain",
10112
+ setDefaultKeychain: OptionalConfigValue<Bool> = .fastlaneDefault(true))
10090
10113
  {
10091
10114
  let forceArg = force.asRubyArgument(name: "force", type: nil)
10092
10115
  let providerArg = provider.asRubyArgument(name: "provider", type: nil)
10093
10116
  let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
10094
10117
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
10118
+ let setDefaultKeychainArg = setDefaultKeychain.asRubyArgument(name: "set_default_keychain", type: nil)
10095
10119
  let array: [RubyCommand.Argument?] = [forceArg,
10096
10120
  providerArg,
10097
10121
  timeoutArg,
10098
- keychainNameArg]
10122
+ keychainNameArg,
10123
+ setDefaultKeychainArg]
10099
10124
  let args: [RubyCommand.Argument] = array
10100
10125
  .filter { $0?.value != nil }
10101
10126
  .compactMap { $0 }
@@ -11104,6 +11129,7 @@ public func splunkmint(dsym: OptionalConfigValue<String?> = .fastlaneDefault(nil
11104
11129
  - disableSandbox: Disable using the sandbox when executing subprocesses
11105
11130
  - xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
11106
11131
  - xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
11132
+ - skipUpdate: Skip updating dependencies from their remote during a resolution
11107
11133
  - verbose: Increase verbosity of informational output
11108
11134
  - veryVerbose: Increase verbosity to include debug output
11109
11135
  - simulator: Specifies the simulator to pass for Swift Compiler (one of: iphonesimulator, macosx)
@@ -11120,6 +11146,7 @@ public func spm(command: String = "build",
11120
11146
  disableSandbox: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11121
11147
  xcprettyOutput: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11122
11148
  xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11149
+ skipUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11123
11150
  verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11124
11151
  veryVerbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11125
11152
  simulator: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -11136,6 +11163,7 @@ public func spm(command: String = "build",
11136
11163
  let disableSandboxArg = disableSandbox.asRubyArgument(name: "disable_sandbox", type: nil)
11137
11164
  let xcprettyOutputArg = xcprettyOutput.asRubyArgument(name: "xcpretty_output", type: nil)
11138
11165
  let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
11166
+ let skipUpdateArg = skipUpdate.asRubyArgument(name: "skip_update", type: nil)
11139
11167
  let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
11140
11168
  let veryVerboseArg = veryVerbose.asRubyArgument(name: "very_verbose", type: nil)
11141
11169
  let simulatorArg = simulator.asRubyArgument(name: "simulator", type: nil)
@@ -11151,6 +11179,7 @@ public func spm(command: String = "build",
11151
11179
  disableSandboxArg,
11152
11180
  xcprettyOutputArg,
11153
11181
  xcprettyArgsArg,
11182
+ skipUpdateArg,
11154
11183
  verboseArg,
11155
11184
  veryVerboseArg,
11156
11185
  simulatorArg,
@@ -11827,6 +11856,7 @@ public func testfairy(apiKey: String,
11827
11856
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
11828
11857
  - appClipInvocations: Add beta app clip invocations to your builds in TestFlight
11829
11858
  - overwriteAppClipInvocations: Clear all previous beta app clip invocations before adding new ones
11859
+ - routingAppCoverageFile: Path to the routing app coverage file (`.geojson`) that is required for routing apps. It will be uploaded to the editable App Store version of the app
11830
11860
  - distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
11831
11861
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
11832
11862
  - distributeExternal: Should the build be distributed to external testers? If set to true, use of `groups` option is required
@@ -11838,11 +11868,11 @@ public func testfairy(apiKey: String,
11838
11868
  - lastName: The tester's last name
11839
11869
  - email: The tester's email
11840
11870
  - testersFilePath: Path to a CSV file of testers
11841
- - 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
11871
+ - 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
11842
11872
  - teamId: The ID of your App Store Connect team if you're in multiple teams
11843
11873
  - teamName: The name of your App Store Connect team if you're in multiple teams
11844
11874
  - devPortalTeamId: The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID!
11845
- - 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
11875
+ - 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
11846
11876
  - 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
11847
11877
  - waitProcessingInterval: Interval in seconds to wait for App Store Connect processing
11848
11878
  - 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
@@ -11873,6 +11903,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11873
11903
  updateBuildInfoOnUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11874
11904
  appClipInvocations: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
11875
11905
  overwriteAppClipInvocations: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11906
+ routingAppCoverageFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11876
11907
  distributeOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11877
11908
  usesNonExemptEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11878
11909
  distributeExternal: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -11916,6 +11947,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11916
11947
  let updateBuildInfoOnUploadArg = updateBuildInfoOnUpload.asRubyArgument(name: "update_build_info_on_upload", type: nil)
11917
11948
  let appClipInvocationsArg = appClipInvocations.asRubyArgument(name: "app_clip_invocations", type: nil)
11918
11949
  let overwriteAppClipInvocationsArg = overwriteAppClipInvocations.asRubyArgument(name: "overwrite_app_clip_invocations", type: nil)
11950
+ let routingAppCoverageFileArg = routingAppCoverageFile.asRubyArgument(name: "routing_app_coverage_file", type: nil)
11919
11951
  let distributeOnlyArg = distributeOnly.asRubyArgument(name: "distribute_only", type: nil)
11920
11952
  let usesNonExemptEncryptionArg = usesNonExemptEncryption.asRubyArgument(name: "uses_non_exempt_encryption", type: nil)
11921
11953
  let distributeExternalArg = distributeExternal.asRubyArgument(name: "distribute_external", type: nil)
@@ -11958,6 +11990,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11958
11990
  updateBuildInfoOnUploadArg,
11959
11991
  appClipInvocationsArg,
11960
11992
  overwriteAppClipInvocationsArg,
11993
+ routingAppCoverageFileArg,
11961
11994
  distributeOnlyArg,
11962
11995
  usesNonExemptEncryptionArg,
11963
11996
  distributeExternalArg,
@@ -12538,7 +12571,7 @@ public func updateProjectProvisioning(xcodeproj: OptionalConfigValue<String?> =
12538
12571
  - targets: Name of the targets you want to update
12539
12572
  - teamid: The Team ID you want to use
12540
12573
 
12541
- This action updates the Developer Team ID of your Xcode project.
12574
+ This action updates (or adds) the Developer Team ID of your Xcode project.
12542
12575
  */
12543
12576
  public func updateProjectTeam(path: String,
12544
12577
  targets: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -12687,9 +12720,11 @@ public func uploadAppPrivacyDetailsToAppStore(username: String,
12687
12720
  - binaryPath: The path to the upload-symbols file of the Fabric app
12688
12721
  - platform: The platform of the app (ios, appletvos, mac)
12689
12722
  - dsymWorkerThreads: The number of threads to use for simultaneous dSYM upload
12723
+ - failOnError: Should the action fail when an upload fails?
12690
12724
  - debug: Enable debug mode for upload-symbols
12691
12725
 
12692
- 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.
12726
+ 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.
12727
+ 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.
12693
12728
  */
12694
12729
  public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji2.dSYM",
12695
12730
  dsymPaths: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
@@ -12699,6 +12734,7 @@ public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/
12699
12734
  binaryPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12700
12735
  platform: String = "ios",
12701
12736
  dsymWorkerThreads: Int = 1,
12737
+ failOnError: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12702
12738
  debug: OptionalConfigValue<Bool> = .fastlaneDefault(false))
12703
12739
  {
12704
12740
  let dsymPathArg = RubyCommand.Argument(name: "dsym_path", value: dsymPath, type: nil)
@@ -12709,6 +12745,7 @@ public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/
12709
12745
  let binaryPathArg = binaryPath.asRubyArgument(name: "binary_path", type: nil)
12710
12746
  let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
12711
12747
  let dsymWorkerThreadsArg = RubyCommand.Argument(name: "dsym_worker_threads", value: dsymWorkerThreads, type: nil)
12748
+ let failOnErrorArg = failOnError.asRubyArgument(name: "fail_on_error", type: nil)
12712
12749
  let debugArg = debug.asRubyArgument(name: "debug", type: nil)
12713
12750
  let array: [RubyCommand.Argument?] = [dsymPathArg,
12714
12751
  dsymPathsArg,
@@ -12718,6 +12755,7 @@ public func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/
12718
12755
  binaryPathArg,
12719
12756
  platformArg,
12720
12757
  dsymWorkerThreadsArg,
12758
+ failOnErrorArg,
12721
12759
  debugArg]
12722
12760
  let args: [RubyCommand.Argument] = array
12723
12761
  .filter { $0?.value != nil }
@@ -12816,7 +12854,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
12816
12854
  - teamName: The name of your App Store Connect team if you're in multiple teams
12817
12855
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
12818
12856
  - devPortalTeamName: The name of your Developer Portal team if you're in multiple teams
12819
- - 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
12857
+ - 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
12820
12858
  - 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
12821
12859
  - runPrecheckBeforeSubmit: Run precheck before submitting to app review
12822
12860
  - precheckDefaultRuleLevel: The default precheck rule level unless otherwise configured
@@ -12834,6 +12872,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
12834
12872
  - appReviewInformation: Metadata: A hash containing the review information
12835
12873
  - appClipReviewInformation: Metadata: A hash containing the app clip review information
12836
12874
  - appReviewAttachmentFile: Metadata: Path to the app review attachment file
12875
+ - routingAppCoverageFile: Metadata: Path to the routing app coverage file (`.geojson`) that is required for routing apps
12837
12876
  - description: Metadata: The localised app description
12838
12877
  - name: Metadata: The localised app name
12839
12878
  - subtitle: Metadata: The localised app subtitle
@@ -12917,6 +12956,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12917
12956
  appReviewInformation: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
12918
12957
  appClipReviewInformation: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
12919
12958
  appReviewAttachmentFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12959
+ routingAppCoverageFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12920
12960
  description: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
12921
12961
  name: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
12922
12962
  subtitle: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -12993,6 +13033,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12993
13033
  let appReviewInformationArg = appReviewInformation.asRubyArgument(name: "app_review_information", type: nil)
12994
13034
  let appClipReviewInformationArg = appClipReviewInformation.asRubyArgument(name: "app_clip_review_information", type: nil)
12995
13035
  let appReviewAttachmentFileArg = appReviewAttachmentFile.asRubyArgument(name: "app_review_attachment_file", type: nil)
13036
+ let routingAppCoverageFileArg = routingAppCoverageFile.asRubyArgument(name: "routing_app_coverage_file", type: nil)
12996
13037
  let descriptionArg = description.asRubyArgument(name: "description", type: nil)
12997
13038
  let nameArg = name.asRubyArgument(name: "name", type: nil)
12998
13039
  let subtitleArg = subtitle.asRubyArgument(name: "subtitle", type: nil)
@@ -13068,6 +13109,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
13068
13109
  appReviewInformationArg,
13069
13110
  appClipReviewInformationArg,
13070
13111
  appReviewAttachmentFileArg,
13112
+ routingAppCoverageFileArg,
13071
13113
  descriptionArg,
13072
13114
  nameArg,
13073
13115
  subtitleArg,
@@ -13343,6 +13385,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
13343
13385
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
13344
13386
  - appClipInvocations: Add beta app clip invocations to your builds in TestFlight
13345
13387
  - overwriteAppClipInvocations: Clear all previous beta app clip invocations before adding new ones
13388
+ - routingAppCoverageFile: Path to the routing app coverage file (`.geojson`) that is required for routing apps. It will be uploaded to the editable App Store version of the app
13346
13389
  - distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
13347
13390
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
13348
13391
  - distributeExternal: Should the build be distributed to external testers? If set to true, use of `groups` option is required
@@ -13354,11 +13397,11 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
13354
13397
  - lastName: The tester's last name
13355
13398
  - email: The tester's email
13356
13399
  - testersFilePath: Path to a CSV file of testers
13357
- - 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
13400
+ - 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
13358
13401
  - teamId: The ID of your App Store Connect team if you're in multiple teams
13359
13402
  - teamName: The name of your App Store Connect team if you're in multiple teams
13360
13403
  - devPortalTeamId: The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID!
13361
- - 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
13404
+ - 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
13362
13405
  - 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
13363
13406
  - waitProcessingInterval: Interval in seconds to wait for App Store Connect processing
13364
13407
  - 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
@@ -13389,6 +13432,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
13389
13432
  updateBuildInfoOnUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13390
13433
  appClipInvocations: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
13391
13434
  overwriteAppClipInvocations: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13435
+ routingAppCoverageFile: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13392
13436
  distributeOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13393
13437
  usesNonExemptEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
13394
13438
  distributeExternal: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -13432,6 +13476,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
13432
13476
  let updateBuildInfoOnUploadArg = updateBuildInfoOnUpload.asRubyArgument(name: "update_build_info_on_upload", type: nil)
13433
13477
  let appClipInvocationsArg = appClipInvocations.asRubyArgument(name: "app_clip_invocations", type: nil)
13434
13478
  let overwriteAppClipInvocationsArg = overwriteAppClipInvocations.asRubyArgument(name: "overwrite_app_clip_invocations", type: nil)
13479
+ let routingAppCoverageFileArg = routingAppCoverageFile.asRubyArgument(name: "routing_app_coverage_file", type: nil)
13435
13480
  let distributeOnlyArg = distributeOnly.asRubyArgument(name: "distribute_only", type: nil)
13436
13481
  let usesNonExemptEncryptionArg = usesNonExemptEncryption.asRubyArgument(name: "uses_non_exempt_encryption", type: nil)
13437
13482
  let distributeExternalArg = distributeExternal.asRubyArgument(name: "distribute_external", type: nil)
@@ -13474,6 +13519,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
13474
13519
  updateBuildInfoOnUploadArg,
13475
13520
  appClipInvocationsArg,
13476
13521
  overwriteAppClipInvocationsArg,
13522
+ routingAppCoverageFileArg,
13477
13523
  distributeOnlyArg,
13478
13524
  usesNonExemptEncryptionArg,
13479
13525
  distributeExternalArg,
@@ -13922,7 +13968,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13922
13968
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13923
13969
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13924
13970
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13925
- ideFoundationPath: String = "/Applications/Xcode_26.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13971
+ ideFoundationPath: String = "/Applications/Xcode_26.6.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13926
13972
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13927
13973
  {
13928
13974
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -14133,4 +14179,4 @@ public let snapshotfile: Snapshotfile = .init()
14133
14179
 
14134
14180
  // Please don't remove the lines below
14135
14181
  // They are used to detect outdated files
14136
- // FastlaneRunnerAPIVersion [0.9.204]
14182
+ // FastlaneRunnerAPIVersion [0.9.206]
@@ -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.237.0
20
+ // Generated with fastlane 2.239.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.154]
395
+ // FastlaneRunnerAPIVersion [0.9.156]
@@ -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.237.0
20
+ // Generated with fastlane 2.239.0
@@ -413,4 +413,4 @@ public extension MatchfileProtocol {
413
413
 
414
414
  // Please don't remove the lines below
415
415
  // They are used to detect outdated files
416
- // FastlaneRunnerAPIVersion [0.9.148]
416
+ // FastlaneRunnerAPIVersion [0.9.150]
@@ -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.237.0
20
+ // Generated with fastlane 2.239.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.147]
87
+ // FastlaneRunnerAPIVersion [0.9.149]
@@ -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.237.0
20
+ // Generated with fastlane 2.239.0
@@ -581,4 +581,4 @@ public extension ScanfileProtocol {
581
581
 
582
582
  // Please don't remove the lines below
583
583
  // They are used to detect outdated files
584
- // FastlaneRunnerAPIVersion [0.9.159]
584
+ // FastlaneRunnerAPIVersion [0.9.161]
@@ -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.237.0
20
+ // Generated with fastlane 2.239.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.149]
164
+ // FastlaneRunnerAPIVersion [0.9.151]