fastlane 2.214.0 → 2.217.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +98 -98
  3. data/deliver/lib/deliver/app_screenshot.rb +20 -10
  4. data/deliver/lib/deliver/runner.rb +2 -1
  5. data/deliver/lib/deliver/submit_for_review.rb +13 -0
  6. data/deliver/lib/deliver/upload_metadata.rb +58 -13
  7. data/fastlane/lib/fastlane/actions/docs/build_app.md +2 -2
  8. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +8 -8
  9. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
  10. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +2 -2
  11. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
  12. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
  13. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +6 -2
  14. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
  15. data/fastlane/lib/fastlane/actions/download_universal_apk_from_google_play.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +4 -0
  17. data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/install_on_device.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
  20. data/fastlane/lib/fastlane/actions/notarize.rb +17 -2
  21. data/fastlane/lib/fastlane/actions/slather.rb +17 -4
  22. data/fastlane/lib/fastlane/helper/git_helper.rb +3 -0
  23. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +0 -3
  24. data/fastlane/lib/fastlane/lane.rb +9 -1
  25. data/fastlane/lib/fastlane/new_action.rb +1 -1
  26. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +3 -3
  27. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -2
  28. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  29. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +1 -1
  30. data/fastlane/lib/fastlane/runner.rb +1 -1
  31. data/fastlane/lib/fastlane/version.rb +2 -2
  32. data/fastlane/swift/Deliverfile.swift +1 -1
  33. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  34. data/fastlane/swift/Fastlane.swift +67 -7
  35. data/fastlane/swift/Gymfile.swift +1 -1
  36. data/fastlane/swift/GymfileProtocol.swift +1 -1
  37. data/fastlane/swift/Matchfile.swift +1 -1
  38. data/fastlane/swift/MatchfileProtocol.swift +17 -1
  39. data/fastlane/swift/Precheckfile.swift +1 -1
  40. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  41. data/fastlane/swift/Scanfile.swift +1 -1
  42. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  43. data/fastlane/swift/Screengrabfile.swift +1 -1
  44. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  45. data/fastlane/swift/Snapshotfile.swift +1 -1
  46. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  47. data/fastlane/swift/formatting/Brewfile.lock.json +22 -22
  48. data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
  49. data/fastlane_core/lib/fastlane_core/project.rb +4 -0
  50. data/fastlane_core/lib/fastlane_core/queue_worker.rb +1 -1
  51. data/frameit/lib/frameit/device_types.rb +1 -1
  52. data/gym/lib/gym/module.rb +13 -2
  53. data/gym/lib/gym/options.rb +1 -1
  54. data/match/lib/match/change_password.rb +3 -9
  55. data/match/lib/match/commands_generator.rb +3 -6
  56. data/match/lib/match/encryption.rb +1 -1
  57. data/match/lib/match/importer.rb +3 -31
  58. data/match/lib/match/migrate.rb +6 -2
  59. data/match/lib/match/nuke.rb +3 -25
  60. data/match/lib/match/options.rb +20 -0
  61. data/match/lib/match/runner.rb +16 -37
  62. data/match/lib/match/setup.rb +1 -1
  63. data/match/lib/match/storage/git_storage.rb +9 -1
  64. data/match/lib/match/storage/s3_storage.rb +6 -0
  65. data/match/lib/match/storage.rb +56 -5
  66. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +1 -1
  67. data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
  68. data/snapshot/lib/snapshot/reports_generator.rb +48 -7
  69. data/spaceship/lib/spaceship/connect_api/api_client.rb +21 -2
  70. data/spaceship/lib/spaceship/connect_api/models/app.rb +3 -2
  71. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -9
  72. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -0
  73. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
  74. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  75. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +4 -4
  76. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -2
  77. data/spaceship/lib/spaceship/connect_api/models/device.rb +2 -2
  78. data/spaceship/lib/spaceship/connect_api/models/profile.rb +3 -2
  79. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +14 -8
  80. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +8 -2
  81. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +0 -3
  82. data/supply/lib/supply/client.rb +47 -21
  83. data/supply/lib/supply/image_listing.rb +15 -0
  84. data/supply/lib/supply/options.rb +5 -0
  85. data/supply/lib/supply/setup.rb +1 -1
  86. data/supply/lib/supply/uploader.rb +60 -18
  87. data/supply/lib/supply.rb +1 -0
  88. data/trainer/lib/trainer/xcresult.rb +1 -1
  89. metadata +282 -273
@@ -4221,7 +4221,7 @@ public func downloadFromPlayStore(packageName: String,
4221
4221
 
4222
4222
  Download the universal APK of a given version code from the Google Play Console.
4223
4223
 
4224
- This uses fastlane `Supply` (and the `AndroidPublisher` Google API) to download the Universal APK
4224
+ This uses _fastlane_ `supply` (and the `AndroidPublisher` Google API) to download the Universal APK
4225
4225
  generated by Google after you uploaded an `.aab` bundle to the Play Console.
4226
4226
 
4227
4227
  See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list
@@ -5252,7 +5252,7 @@ public func gitAdd(path: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
5252
5252
  /**
5253
5253
  Returns the name of the current git branch, possibly as managed by CI ENV vars
5254
5254
 
5255
- If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch
5255
+ If no branch could be found, this action will return an empty string. If `FL_GIT_BRANCH_DONT_USE_ENV_VARS` is `true`, it'll ignore CI ENV vars. This is a wrapper for the internal action Actions.git_branch
5256
5256
  */
5257
5257
  @discardableResult public func gitBranch() -> String {
5258
5258
  let args: [RubyCommand.Argument] = []
@@ -6236,7 +6236,7 @@ public func importCertificate(certificatePath: String,
6236
6236
  - skipWifi: Do not search for devices via WiFi
6237
6237
  - ipa: The IPA file to put on the device
6238
6238
 
6239
- Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires `ios-deploy` to be installed. Please have a look at [ios-deploy](https://github.com/ios-control/ios-deploy). To quickly install it, use `npm -g i ios-deploy`
6239
+ Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires `ios-deploy` to be installed. Please have a look at [ios-deploy](https://github.com/ios-control/ios-deploy). To quickly install it, use `brew install ios-deploy`
6240
6240
  */
6241
6241
  public func installOnDevice(extra: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6242
6242
  deviceId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -6734,14 +6734,18 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
6734
6734
  - s3SecretAccessKey: S3 secret access key
6735
6735
  - s3Bucket: Name of the S3 bucket
6736
6736
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
6737
+ - s3SkipEncryption: Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
6737
6738
  - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
6738
6739
  - gitlabHost: GitLab Host (i.e. 'https://gitlab.com')
6740
+ - jobToken: GitLab CI_JOB_TOKEN
6741
+ - privateToken: GitLab Access Token
6739
6742
  - keychainName: Keychain the items should be imported to
6740
6743
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
6741
6744
  - force: Renew the provisioning profiles every time you run match
6742
6745
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
6743
6746
  - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
6744
6747
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
6748
+ - certificateId: Select certificate by id. Useful if multiple certificates are stored in one place
6745
6749
  - 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'
6746
6750
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
6747
6751
  - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
@@ -6788,14 +6792,18 @@ public func match(type: String = matchfile.type,
6788
6792
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3SecretAccessKey),
6789
6793
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3Bucket),
6790
6794
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.s3ObjectPrefix),
6795
+ s3SkipEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.s3SkipEncryption),
6791
6796
  gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.gitlabProject),
6792
6797
  gitlabHost: String = matchfile.gitlabHost,
6798
+ jobToken: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.jobToken),
6799
+ privateToken: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.privateToken),
6793
6800
  keychainName: String = matchfile.keychainName,
6794
6801
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.keychainPassword),
6795
6802
  force: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.force),
6796
6803
  forceForNewDevices: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.forceForNewDevices),
6797
6804
  includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.includeMacInProfiles),
6798
6805
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.includeAllCertificates),
6806
+ certificateId: OptionalConfigValue<String?> = .fastlaneDefault(matchfile.certificateId),
6799
6807
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.forceForNewCertificates),
6800
6808
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipConfirmation),
6801
6809
  safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.safeRemoveCerts),
@@ -6840,14 +6848,18 @@ public func match(type: String = matchfile.type,
6840
6848
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
6841
6849
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
6842
6850
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
6851
+ let s3SkipEncryptionArg = s3SkipEncryption.asRubyArgument(name: "s3_skip_encryption", type: nil)
6843
6852
  let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
6844
6853
  let gitlabHostArg = RubyCommand.Argument(name: "gitlab_host", value: gitlabHost, type: nil)
6854
+ let jobTokenArg = jobToken.asRubyArgument(name: "job_token", type: nil)
6855
+ let privateTokenArg = privateToken.asRubyArgument(name: "private_token", type: nil)
6845
6856
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
6846
6857
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
6847
6858
  let forceArg = force.asRubyArgument(name: "force", type: nil)
6848
6859
  let forceForNewDevicesArg = forceForNewDevices.asRubyArgument(name: "force_for_new_devices", type: nil)
6849
6860
  let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
6850
6861
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
6862
+ let certificateIdArg = certificateId.asRubyArgument(name: "certificate_id", type: nil)
6851
6863
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
6852
6864
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
6853
6865
  let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
@@ -6891,14 +6903,18 @@ public func match(type: String = matchfile.type,
6891
6903
  s3SecretAccessKeyArg,
6892
6904
  s3BucketArg,
6893
6905
  s3ObjectPrefixArg,
6906
+ s3SkipEncryptionArg,
6894
6907
  gitlabProjectArg,
6895
6908
  gitlabHostArg,
6909
+ jobTokenArg,
6910
+ privateTokenArg,
6896
6911
  keychainNameArg,
6897
6912
  keychainPasswordArg,
6898
6913
  forceArg,
6899
6914
  forceForNewDevicesArg,
6900
6915
  includeMacInProfilesArg,
6901
6916
  includeAllCertificatesArg,
6917
+ certificateIdArg,
6902
6918
  forceForNewCertificatesArg,
6903
6919
  skipConfirmationArg,
6904
6920
  safeRemoveCertsArg,
@@ -6953,14 +6969,18 @@ public func match(type: String = matchfile.type,
6953
6969
  - s3SecretAccessKey: S3 secret access key
6954
6970
  - s3Bucket: Name of the S3 bucket
6955
6971
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
6972
+ - s3SkipEncryption: Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
6956
6973
  - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
6957
6974
  - gitlabHost: GitLab Host (i.e. 'https://gitlab.com')
6975
+ - jobToken: GitLab CI_JOB_TOKEN
6976
+ - privateToken: GitLab Access Token
6958
6977
  - keychainName: Keychain the items should be imported to
6959
6978
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
6960
6979
  - force: Renew the provisioning profiles every time you run match
6961
6980
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
6962
6981
  - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
6963
6982
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
6983
+ - certificateId: Select certificate by id. Useful if multiple certificates are stored in one place
6964
6984
  - 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'
6965
6985
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
6966
6986
  - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
@@ -7011,14 +7031,18 @@ public func matchNuke(type: String = "development",
7011
7031
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7012
7032
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7013
7033
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7034
+ s3SkipEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7014
7035
  gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7015
7036
  gitlabHost: String = "https://gitlab.com",
7037
+ jobToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7038
+ privateToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7016
7039
  keychainName: String = "login.keychain",
7017
7040
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7018
7041
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7019
7042
  forceForNewDevices: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7020
7043
  includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7021
7044
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7045
+ certificateId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7022
7046
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7023
7047
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
7024
7048
  safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -7063,14 +7087,18 @@ public func matchNuke(type: String = "development",
7063
7087
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
7064
7088
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
7065
7089
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
7090
+ let s3SkipEncryptionArg = s3SkipEncryption.asRubyArgument(name: "s3_skip_encryption", type: nil)
7066
7091
  let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
7067
7092
  let gitlabHostArg = RubyCommand.Argument(name: "gitlab_host", value: gitlabHost, type: nil)
7093
+ let jobTokenArg = jobToken.asRubyArgument(name: "job_token", type: nil)
7094
+ let privateTokenArg = privateToken.asRubyArgument(name: "private_token", type: nil)
7068
7095
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
7069
7096
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
7070
7097
  let forceArg = force.asRubyArgument(name: "force", type: nil)
7071
7098
  let forceForNewDevicesArg = forceForNewDevices.asRubyArgument(name: "force_for_new_devices", type: nil)
7072
7099
  let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
7073
7100
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
7101
+ let certificateIdArg = certificateId.asRubyArgument(name: "certificate_id", type: nil)
7074
7102
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
7075
7103
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
7076
7104
  let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
@@ -7114,14 +7142,18 @@ public func matchNuke(type: String = "development",
7114
7142
  s3SecretAccessKeyArg,
7115
7143
  s3BucketArg,
7116
7144
  s3ObjectPrefixArg,
7145
+ s3SkipEncryptionArg,
7117
7146
  gitlabProjectArg,
7118
7147
  gitlabHostArg,
7148
+ jobTokenArg,
7149
+ privateTokenArg,
7119
7150
  keychainNameArg,
7120
7151
  keychainPasswordArg,
7121
7152
  forceArg,
7122
7153
  forceForNewDevicesArg,
7123
7154
  includeMacInProfilesArg,
7124
7155
  includeAllCertificatesArg,
7156
+ certificateIdArg,
7125
7157
  forceForNewCertificatesArg,
7126
7158
  skipConfirmationArg,
7127
7159
  safeRemoveCertsArg,
@@ -10258,6 +10290,7 @@ public func slackTrainStart(distance: Int = 5,
10258
10290
  - arch: Specify which architecture the binary file is in. Needed for universal binaries
10259
10291
  - sourceFiles: A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode
10260
10292
  - decimals: The amount of decimals to use for % coverage reporting
10293
+ - ymlfile: Relative path to a file used in place of '.slather.yml'
10261
10294
 
10262
10295
  Slather works with multiple code coverage formats, including Xcode 7 code coverage.
10263
10296
  Slather is available at [https://github.com/SlatherOrg/slather](https://github.com/SlatherOrg/slather).
@@ -10293,7 +10326,8 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10293
10326
  binaryFile: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
10294
10327
  arch: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10295
10328
  sourceFiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10296
- decimals: OptionalConfigValue<Bool> = .fastlaneDefault(false))
10329
+ decimals: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10330
+ ymlfile: OptionalConfigValue<String?> = .fastlaneDefault(nil))
10297
10331
  {
10298
10332
  let buildDirectoryArg = buildDirectory.asRubyArgument(name: "build_directory", type: nil)
10299
10333
  let projArg = proj.asRubyArgument(name: "proj", type: nil)
@@ -10327,6 +10361,7 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10327
10361
  let archArg = arch.asRubyArgument(name: "arch", type: nil)
10328
10362
  let sourceFilesArg = sourceFiles.asRubyArgument(name: "source_files", type: nil)
10329
10363
  let decimalsArg = decimals.asRubyArgument(name: "decimals", type: nil)
10364
+ let ymlfileArg = ymlfile.asRubyArgument(name: "ymlfile", type: nil)
10330
10365
  let array: [RubyCommand.Argument?] = [buildDirectoryArg,
10331
10366
  projArg,
10332
10367
  workspaceArg,
@@ -10358,7 +10393,8 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10358
10393
  binaryFileArg,
10359
10394
  archArg,
10360
10395
  sourceFilesArg,
10361
- decimalsArg]
10396
+ decimalsArg,
10397
+ ymlfileArg]
10362
10398
  let args: [RubyCommand.Argument] = array
10363
10399
  .filter { $0?.value != nil }
10364
10400
  .compactMap { $0 }
@@ -10942,6 +10978,7 @@ public func ssh(username: String,
10942
10978
  - skipUploadChangelogs: Whether to skip uploading changelogs
10943
10979
  - skipUploadImages: Whether to skip uploading images, screenshots not included
10944
10980
  - skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
10981
+ - syncImageUpload: Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store
10945
10982
  - trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
10946
10983
  - trackPromoteReleaseStatus: Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress
10947
10984
  - validateOnly: Only validate changes with Google Play rather than actually publish
@@ -10984,6 +11021,7 @@ public func supply(packageName: String,
10984
11021
  skipUploadChangelogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10985
11022
  skipUploadImages: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10986
11023
  skipUploadScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11024
+ syncImageUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
10987
11025
  trackPromoteTo: OptionalConfigValue<String?> = .fastlaneDefault(nil),
10988
11026
  trackPromoteReleaseStatus: String = "completed",
10989
11027
  validateOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -11024,6 +11062,7 @@ public func supply(packageName: String,
11024
11062
  let skipUploadChangelogsArg = skipUploadChangelogs.asRubyArgument(name: "skip_upload_changelogs", type: nil)
11025
11063
  let skipUploadImagesArg = skipUploadImages.asRubyArgument(name: "skip_upload_images", type: nil)
11026
11064
  let skipUploadScreenshotsArg = skipUploadScreenshots.asRubyArgument(name: "skip_upload_screenshots", type: nil)
11065
+ let syncImageUploadArg = syncImageUpload.asRubyArgument(name: "sync_image_upload", type: nil)
11027
11066
  let trackPromoteToArg = trackPromoteTo.asRubyArgument(name: "track_promote_to", type: nil)
11028
11067
  let trackPromoteReleaseStatusArg = RubyCommand.Argument(name: "track_promote_release_status", value: trackPromoteReleaseStatus, type: nil)
11029
11068
  let validateOnlyArg = validateOnly.asRubyArgument(name: "validate_only", type: nil)
@@ -11063,6 +11102,7 @@ public func supply(packageName: String,
11063
11102
  skipUploadChangelogsArg,
11064
11103
  skipUploadImagesArg,
11065
11104
  skipUploadScreenshotsArg,
11105
+ syncImageUploadArg,
11066
11106
  trackPromoteToArg,
11067
11107
  trackPromoteReleaseStatusArg,
11068
11108
  validateOnlyArg,
@@ -11191,14 +11231,18 @@ public func swiftlint(mode: String = "lint",
11191
11231
  - s3SecretAccessKey: S3 secret access key
11192
11232
  - s3Bucket: Name of the S3 bucket
11193
11233
  - s3ObjectPrefix: Prefix to be used on all objects uploaded to S3
11234
+ - s3SkipEncryption: Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
11194
11235
  - gitlabProject: GitLab Project Path (i.e. 'gitlab-org/gitlab')
11195
11236
  - gitlabHost: GitLab Host (i.e. 'https://gitlab.com')
11237
+ - jobToken: GitLab CI_JOB_TOKEN
11238
+ - privateToken: GitLab Access Token
11196
11239
  - keychainName: Keychain the items should be imported to
11197
11240
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password
11198
11241
  - force: Renew the provisioning profiles every time you run match
11199
11242
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
11200
11243
  - includeMacInProfiles: Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps
11201
11244
  - includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
11245
+ - certificateId: Select certificate by id. Useful if multiple certificates are stored in one place
11202
11246
  - 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'
11203
11247
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
11204
11248
  - safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
@@ -11245,14 +11289,18 @@ public func syncCodeSigning(type: String = "development",
11245
11289
  s3SecretAccessKey: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11246
11290
  s3Bucket: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11247
11291
  s3ObjectPrefix: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11292
+ s3SkipEncryption: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11248
11293
  gitlabProject: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11249
11294
  gitlabHost: String = "https://gitlab.com",
11295
+ jobToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11296
+ privateToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11250
11297
  keychainName: String = "login.keychain",
11251
11298
  keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11252
11299
  force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11253
11300
  forceForNewDevices: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11254
11301
  includeMacInProfiles: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11255
11302
  includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11303
+ certificateId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11256
11304
  forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11257
11305
  skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
11258
11306
  safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -11297,14 +11345,18 @@ public func syncCodeSigning(type: String = "development",
11297
11345
  let s3SecretAccessKeyArg = s3SecretAccessKey.asRubyArgument(name: "s3_secret_access_key", type: nil)
11298
11346
  let s3BucketArg = s3Bucket.asRubyArgument(name: "s3_bucket", type: nil)
11299
11347
  let s3ObjectPrefixArg = s3ObjectPrefix.asRubyArgument(name: "s3_object_prefix", type: nil)
11348
+ let s3SkipEncryptionArg = s3SkipEncryption.asRubyArgument(name: "s3_skip_encryption", type: nil)
11300
11349
  let gitlabProjectArg = gitlabProject.asRubyArgument(name: "gitlab_project", type: nil)
11301
11350
  let gitlabHostArg = RubyCommand.Argument(name: "gitlab_host", value: gitlabHost, type: nil)
11351
+ let jobTokenArg = jobToken.asRubyArgument(name: "job_token", type: nil)
11352
+ let privateTokenArg = privateToken.asRubyArgument(name: "private_token", type: nil)
11302
11353
  let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
11303
11354
  let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
11304
11355
  let forceArg = force.asRubyArgument(name: "force", type: nil)
11305
11356
  let forceForNewDevicesArg = forceForNewDevices.asRubyArgument(name: "force_for_new_devices", type: nil)
11306
11357
  let includeMacInProfilesArg = includeMacInProfiles.asRubyArgument(name: "include_mac_in_profiles", type: nil)
11307
11358
  let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
11359
+ let certificateIdArg = certificateId.asRubyArgument(name: "certificate_id", type: nil)
11308
11360
  let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
11309
11361
  let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
11310
11362
  let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
@@ -11348,14 +11400,18 @@ public func syncCodeSigning(type: String = "development",
11348
11400
  s3SecretAccessKeyArg,
11349
11401
  s3BucketArg,
11350
11402
  s3ObjectPrefixArg,
11403
+ s3SkipEncryptionArg,
11351
11404
  gitlabProjectArg,
11352
11405
  gitlabHostArg,
11406
+ jobTokenArg,
11407
+ privateTokenArg,
11353
11408
  keychainNameArg,
11354
11409
  keychainPasswordArg,
11355
11410
  forceArg,
11356
11411
  forceForNewDevicesArg,
11357
11412
  includeMacInProfilesArg,
11358
11413
  includeAllCertificatesArg,
11414
+ certificateIdArg,
11359
11415
  forceForNewCertificatesArg,
11360
11416
  skipConfirmationArg,
11361
11417
  safeRemoveCertsArg,
@@ -12669,6 +12725,7 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
12669
12725
  - skipUploadChangelogs: Whether to skip uploading changelogs
12670
12726
  - skipUploadImages: Whether to skip uploading images, screenshots not included
12671
12727
  - skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
12728
+ - syncImageUpload: Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store
12672
12729
  - trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
12673
12730
  - trackPromoteReleaseStatus: Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress
12674
12731
  - validateOnly: Only validate changes with Google Play rather than actually publish
@@ -12711,6 +12768,7 @@ public func uploadToPlayStore(packageName: String,
12711
12768
  skipUploadChangelogs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12712
12769
  skipUploadImages: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12713
12770
  skipUploadScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12771
+ syncImageUpload: OptionalConfigValue<Bool> = .fastlaneDefault(false),
12714
12772
  trackPromoteTo: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12715
12773
  trackPromoteReleaseStatus: String = "completed",
12716
12774
  validateOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -12751,6 +12809,7 @@ public func uploadToPlayStore(packageName: String,
12751
12809
  let skipUploadChangelogsArg = skipUploadChangelogs.asRubyArgument(name: "skip_upload_changelogs", type: nil)
12752
12810
  let skipUploadImagesArg = skipUploadImages.asRubyArgument(name: "skip_upload_images", type: nil)
12753
12811
  let skipUploadScreenshotsArg = skipUploadScreenshots.asRubyArgument(name: "skip_upload_screenshots", type: nil)
12812
+ let syncImageUploadArg = syncImageUpload.asRubyArgument(name: "sync_image_upload", type: nil)
12754
12813
  let trackPromoteToArg = trackPromoteTo.asRubyArgument(name: "track_promote_to", type: nil)
12755
12814
  let trackPromoteReleaseStatusArg = RubyCommand.Argument(name: "track_promote_release_status", value: trackPromoteReleaseStatus, type: nil)
12756
12815
  let validateOnlyArg = validateOnly.asRubyArgument(name: "validate_only", type: nil)
@@ -12790,6 +12849,7 @@ public func uploadToPlayStore(packageName: String,
12790
12849
  skipUploadChangelogsArg,
12791
12850
  skipUploadImagesArg,
12792
12851
  skipUploadScreenshotsArg,
12852
+ syncImageUploadArg,
12793
12853
  trackPromoteToArg,
12794
12854
  trackPromoteReleaseStatusArg,
12795
12855
  validateOnlyArg,
@@ -13449,7 +13509,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13449
13509
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13450
13510
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13451
13511
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13452
- ideFoundationPath: String = "/Applications/Xcode-14.3.0.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13512
+ ideFoundationPath: String = "/Applications/Xcode-15.0.0.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13453
13513
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13454
13514
  {
13455
13515
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13652,4 +13712,4 @@ public let snapshotfile: Snapshotfile = .init()
13652
13712
 
13653
13713
  // Please don't remove the lines below
13654
13714
  // They are used to detect outdated files
13655
- // FastlaneRunnerAPIVersion [0.9.170]
13715
+ // FastlaneRunnerAPIVersion [0.9.174]
@@ -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.214.0
20
+ // Generated with fastlane 2.217.0
@@ -208,4 +208,4 @@ public extension GymfileProtocol {
208
208
 
209
209
  // Please don't remove the lines below
210
210
  // They are used to detect outdated files
211
- // FastlaneRunnerAPIVersion [0.9.120]
211
+ // FastlaneRunnerAPIVersion [0.9.124]
@@ -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.214.0
20
+ // Generated with fastlane 2.217.0
@@ -92,12 +92,21 @@ public protocol MatchfileProtocol: AnyObject {
92
92
  /// Prefix to be used on all objects uploaded to S3
93
93
  var s3ObjectPrefix: String? { get }
94
94
 
95
+ /// Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html
96
+ var s3SkipEncryption: Bool { get }
97
+
95
98
  /// GitLab Project Path (i.e. 'gitlab-org/gitlab')
96
99
  var gitlabProject: String? { get }
97
100
 
98
101
  /// GitLab Host (i.e. 'https://gitlab.com')
99
102
  var gitlabHost: String { get }
100
103
 
104
+ /// GitLab CI_JOB_TOKEN
105
+ var jobToken: String? { get }
106
+
107
+ /// GitLab Access Token
108
+ var privateToken: String? { get }
109
+
101
110
  /// Keychain the items should be imported to
102
111
  var keychainName: String { get }
103
112
 
@@ -116,6 +125,9 @@ public protocol MatchfileProtocol: AnyObject {
116
125
  /// Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
117
126
  var includeAllCertificates: Bool { get }
118
127
 
128
+ /// Select certificate by id. Useful if multiple certificates are stored in one place
129
+ var certificateId: String? { get }
130
+
119
131
  /// 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'
120
132
  var forceForNewCertificates: Bool { get }
121
133
 
@@ -187,14 +199,18 @@ public extension MatchfileProtocol {
187
199
  var s3SecretAccessKey: String? { return nil }
188
200
  var s3Bucket: String? { return nil }
189
201
  var s3ObjectPrefix: String? { return nil }
202
+ var s3SkipEncryption: Bool { return false }
190
203
  var gitlabProject: String? { return nil }
191
204
  var gitlabHost: String { return "https://gitlab.com" }
205
+ var jobToken: String? { return nil }
206
+ var privateToken: String? { return nil }
192
207
  var keychainName: String { return "login.keychain" }
193
208
  var keychainPassword: String? { return nil }
194
209
  var force: Bool { return false }
195
210
  var forceForNewDevices: Bool { return false }
196
211
  var includeMacInProfiles: Bool { return false }
197
212
  var includeAllCertificates: Bool { return false }
213
+ var certificateId: String? { return nil }
198
214
  var forceForNewCertificates: Bool { return false }
199
215
  var skipConfirmation: Bool { return false }
200
216
  var safeRemoveCerts: Bool { return false }
@@ -212,4 +228,4 @@ public extension MatchfileProtocol {
212
228
 
213
229
  // Please don't remove the lines below
214
230
  // They are used to detect outdated files
215
- // FastlaneRunnerAPIVersion [0.9.114]
231
+ // FastlaneRunnerAPIVersion [0.9.118]
@@ -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.214.0
20
+ // Generated with fastlane 2.217.0
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.113]
55
+ // FastlaneRunnerAPIVersion [0.9.117]
@@ -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.214.0
20
+ // Generated with fastlane 2.217.0
@@ -320,4 +320,4 @@ public extension ScanfileProtocol {
320
320
 
321
321
  // Please don't remove the lines below
322
322
  // They are used to detect outdated files
323
- // FastlaneRunnerAPIVersion [0.9.125]
323
+ // FastlaneRunnerAPIVersion [0.9.129]
@@ -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.214.0
20
+ // Generated with fastlane 2.217.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.115]
99
+ // FastlaneRunnerAPIVersion [0.9.119]
@@ -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.214.0
20
+ // Generated with fastlane 2.217.0
@@ -204,4 +204,4 @@ public extension SnapshotfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.109]
207
+ // FastlaneRunnerAPIVersion [0.9.113]
@@ -2,45 +2,45 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.51.12",
5
+ "version": "0.52.9",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
8
  "root_url": "https://ghcr.io/v2/homebrew/core",
9
9
  "files": {
10
+ "arm64_sonoma": {
11
+ "cellar": ":any_skip_relocation",
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:52697577d90a9cea86cb2829c5a40a9388e5df727a8ee496ff7dad824e572142",
13
+ "sha256": "52697577d90a9cea86cb2829c5a40a9388e5df727a8ee496ff7dad824e572142"
14
+ },
10
15
  "arm64_ventura": {
11
16
  "cellar": ":any_skip_relocation",
12
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:272dadfe917e9296713f7d41739d315679d77485bcedf9f5f5700523947a9635",
13
- "sha256": "272dadfe917e9296713f7d41739d315679d77485bcedf9f5f5700523947a9635"
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2f64a4615f4bc08b5b00fc95ca746c910e66a612d04252a384a150ea4319b3fd",
18
+ "sha256": "2f64a4615f4bc08b5b00fc95ca746c910e66a612d04252a384a150ea4319b3fd"
14
19
  },
15
20
  "arm64_monterey": {
16
21
  "cellar": ":any_skip_relocation",
17
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:fe6ace3786c1e3461c2d7e649e86fecf692e816ef143b1602daaf8ccca674426",
18
- "sha256": "fe6ace3786c1e3461c2d7e649e86fecf692e816ef143b1602daaf8ccca674426"
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:74ee2483b087132a623c63ebe85c0650bd4a1f4ab4e12a592ffddfc93db0f9a0",
23
+ "sha256": "74ee2483b087132a623c63ebe85c0650bd4a1f4ab4e12a592ffddfc93db0f9a0"
19
24
  },
20
- "arm64_big_sur": {
25
+ "sonoma": {
21
26
  "cellar": ":any_skip_relocation",
22
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:e8c39e62f11cead0543225c79a1e3f461f4a3de7595332a2068cf465bd5cb522",
23
- "sha256": "e8c39e62f11cead0543225c79a1e3f461f4a3de7595332a2068cf465bd5cb522"
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2e55e58e59fd79c6adb7340dcc0a33fa6fc611a2375e22d6b7c90101ee1bd439",
28
+ "sha256": "2e55e58e59fd79c6adb7340dcc0a33fa6fc611a2375e22d6b7c90101ee1bd439"
24
29
  },
25
30
  "ventura": {
26
31
  "cellar": ":any_skip_relocation",
27
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:c39102257e34cc3fff2fec1f439b7d62bc5c4404c3d82d58e0b94db325aae3e2",
28
- "sha256": "c39102257e34cc3fff2fec1f439b7d62bc5c4404c3d82d58e0b94db325aae3e2"
32
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:1ef2d7df464f3d8c3e0ae18c1901e595a52038ea6e55760f719e93df5c80d065",
33
+ "sha256": "1ef2d7df464f3d8c3e0ae18c1901e595a52038ea6e55760f719e93df5c80d065"
29
34
  },
30
35
  "monterey": {
31
36
  "cellar": ":any_skip_relocation",
32
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:19ce480a2e73c5bbed64e9b0822d99b9d705d53afc29501265933798bd571dcf",
33
- "sha256": "19ce480a2e73c5bbed64e9b0822d99b9d705d53afc29501265933798bd571dcf"
34
- },
35
- "big_sur": {
36
- "cellar": ":any_skip_relocation",
37
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:653f90a848b51b79c19ec387ff1f76d892c00a4cb8824a4618793a9bc33b9b3a",
38
- "sha256": "653f90a848b51b79c19ec387ff1f76d892c00a4cb8824a4618793a9bc33b9b3a"
37
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:c4752c5c2908bbd592c845ced5910e31e4c5ccbfaf3d294d9a9468b9fd9b0d5d",
38
+ "sha256": "c4752c5c2908bbd592c845ced5910e31e4c5ccbfaf3d294d9a9468b9fd9b0d5d"
39
39
  },
40
40
  "x86_64_linux": {
41
41
  "cellar": "/home/linuxbrew/.linuxbrew/Cellar",
42
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:e3ef2e5695bfdcda2b072211f3071e9c06056e18e3a95a3d60d3d502aa4e8c27",
43
- "sha256": "e3ef2e5695bfdcda2b072211f3071e9c06056e18e3a95a3d60d3d502aa4e8c27"
42
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:4e5d1239be58399f35ddc87bbe123a435f27fbc537e0b4cb52a23b33316e3fa4",
43
+ "sha256": "4e5d1239be58399f35ddc87bbe123a435f27fbc537e0b4cb52a23b33316e3fa4"
44
44
  }
45
45
  }
46
46
  }
@@ -74,12 +74,12 @@
74
74
  "macOS": "12.5"
75
75
  },
76
76
  "ventura": {
77
- "HOMEBREW_VERSION": "4.0.28-67-ge9ac36a",
77
+ "HOMEBREW_VERSION": "4.1.20-17-g8df40f4",
78
78
  "HOMEBREW_PREFIX": "/opt/homebrew",
79
79
  "Homebrew/homebrew-core": "api",
80
80
  "CLT": "",
81
- "Xcode": "14.3",
82
- "macOS": "13.4"
81
+ "Xcode": "15.0",
82
+ "macOS": "13.6"
83
83
  }
84
84
  }
85
85
  }
@@ -116,7 +116,7 @@ module FastlaneCore
116
116
 
117
117
  # Find all installed WWDRCA certificates
118
118
  installed_certs = []
119
- Helper.backticks("security find-certificate -a -c '#{certificate_name}' -p #{wwdr_keychain.shellescape}")
119
+ Helper.backticks("security find-certificate -a -c '#{certificate_name}' -p #{wwdr_keychain.shellescape}", print: false)
120
120
  .lines
121
121
  .each do |line|
122
122
  if line.start_with?('-----BEGIN CERTIFICATE-----')
@@ -146,7 +146,7 @@ module FastlaneCore
146
146
 
147
147
  def self.install_wwdr_certificate(cert_alias)
148
148
  url = WWDRCA_CERTIFICATES.find { |c| c[:alias] == cert_alias }.fetch(:url)
149
- file = Tempfile.new(File.basename(url))
149
+ file = Tempfile.new([File.basename(url, ".cer"), ".cer"])
150
150
  filename = file.path
151
151
  keychain = wwdr_keychain
152
152
  keychain = "-k #{keychain.shellescape}" unless keychain.empty?
@@ -307,6 +307,10 @@ module FastlaneCore
307
307
  supported_platforms.include?(:watchOS)
308
308
  end
309
309
 
310
+ def multiplatform?
311
+ supported_platforms.count > 1
312
+ end
313
+
310
314
  def supported_platforms
311
315
  supported_platforms = build_settings(key: "SUPPORTED_PLATFORMS")
312
316
  if supported_platforms.nil?