fastlane 2.219.0 → 2.221.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +86 -86
- data/bin/console +11 -0
- data/bin/match_file +60 -0
- data/deliver/lib/deliver/download_screenshots.rb +2 -1
- data/deliver/lib/deliver/generate_summary.rb +1 -1
- data/deliver/lib/deliver/options.rb +14 -0
- data/deliver/lib/deliver/runner.rb +4 -4
- data/deliver/lib/deliver/submit_for_review.rb +2 -2
- data/deliver/lib/deliver/upload_metadata.rb +43 -28
- data/deliver/lib/deliver/upload_screenshots.rb +15 -8
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -1
- data/fastlane/lib/fastlane/actions/appetize.rb +4 -0
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +6 -2
- data/fastlane/lib/fastlane/actions/git_add.rb +17 -2
- data/fastlane/lib/fastlane/actions/mailgun.rb +30 -8
- data/fastlane/lib/fastlane/actions/onesignal.rb +14 -2
- data/fastlane/lib/fastlane/actions/spm.rb +7 -0
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +2 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +4 -2
- data/fastlane/lib/fastlane/commands_generator.rb +9 -0
- data/fastlane/lib/fastlane/console.rb +24 -0
- data/fastlane/lib/fastlane/helper/sh_helper.rb +1 -1
- data/fastlane/lib/fastlane/lane_manager_base.rb +16 -8
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +2 -1
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +2 -1
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -1
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +2 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +9 -1
- data/fastlane/swift/Fastlane.swift +48 -11
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/OptionalConfigValue.swift +2 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +3 -3
- data/fastlane/swift/formatting/Brewfile.lock.json +19 -19
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +11 -8
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +0 -15
- data/fastlane_core/lib/fastlane_core/print_table.rb +16 -0
- data/fastlane_core/lib/fastlane_core/project.rb +5 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +0 -4
- data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +1 -5
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +2 -0
- data/frameit/lib/frameit/device_types.rb +4 -0
- data/frameit/lib/frameit/editor.rb +20 -0
- data/gym/lib/gym/detect_values.rb +2 -0
- data/gym/lib/gym/module.rb +2 -2
- data/match/lib/assets/READMETemplate.md +3 -5
- data/match/lib/match/encryption/encryption.rb +154 -0
- data/match/lib/match/encryption/openssl.rb +7 -38
- data/match/lib/match/encryption.rb +1 -0
- data/match/lib/match/runner.rb +44 -6
- data/match/lib/match/storage/git_storage.rb +4 -3
- data/match/lib/match/storage/interface.rb +9 -5
- data/pilot/lib/pilot/build_manager.rb +14 -6
- data/pilot/lib/pilot/manager.rb +2 -2
- data/pilot/lib/pilot/options.rb +1 -1
- data/snapshot/lib/snapshot/options.rb +2 -2
- data/snapshot/lib/snapshot/setup.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/api_client.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/app.rb +28 -33
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +17 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +44 -9
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +30 -2
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/device.rb +11 -6
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +8 -1
- data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +31 -22
- data/spaceship/lib/spaceship/connect_api/testflight/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +47 -43
- data/spaceship/lib/spaceship/connect_api/token.rb +9 -3
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +96 -90
- data/spaceship/lib/spaceship/connect_api/users/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/users/users.rb +15 -11
- data/spaceship/lib/spaceship/connect_api.rb +5 -2
- data/spaceship/lib/spaceship/portal/certificate.rb +2 -2
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +8 -1
- data/spaceship/lib/spaceship/stats_middleware.rb +2 -2
- data/trainer/lib/trainer/xcresult.rb +6 -10
- metadata +50 -33
@@ -2,6 +2,7 @@
|
|
2
2
|
// Copyright (c) 2024 FastlaneTools
|
3
3
|
|
4
4
|
import Foundation
|
5
|
+
|
5
6
|
/**
|
6
7
|
Run ADB Actions
|
7
8
|
|
@@ -189,7 +190,7 @@ public func appStoreBuildNumber(apiKeyPath: OptionalConfigValue<String?> = .fast
|
|
189
190
|
|
190
191
|
- parameters:
|
191
192
|
- keyId: The key ID
|
192
|
-
- issuerId: The issuer ID
|
193
|
+
- issuerId: The issuer ID. It can be nil if the key is individual API key
|
193
194
|
- keyFilepath: The path to the key p8 file
|
194
195
|
- keyContent: The content of the key p8 file
|
195
196
|
- isKeyContentBase64: Whether :key_content is Base64 encoded or not
|
@@ -200,7 +201,7 @@ public func appStoreBuildNumber(apiKeyPath: OptionalConfigValue<String?> = .fast
|
|
200
201
|
Load the App Store Connect API token to use in other fastlane tools and actions
|
201
202
|
*/
|
202
203
|
public func appStoreConnectApiKey(keyId: String,
|
203
|
-
issuerId: String,
|
204
|
+
issuerId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
204
205
|
keyFilepath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
205
206
|
keyContent: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
206
207
|
isKeyContentBase64: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -209,7 +210,7 @@ public func appStoreConnectApiKey(keyId: String,
|
|
209
210
|
setSpaceshipToken: OptionalConfigValue<Bool> = .fastlaneDefault(true))
|
210
211
|
{
|
211
212
|
let keyIdArg = RubyCommand.Argument(name: "key_id", value: keyId, type: nil)
|
212
|
-
let issuerIdArg =
|
213
|
+
let issuerIdArg = issuerId.asRubyArgument(name: "issuer_id", type: nil)
|
213
214
|
let keyFilepathArg = keyFilepath.asRubyArgument(name: "key_filepath", type: nil)
|
214
215
|
let keyContentArg = keyContent.asRubyArgument(name: "key_content", type: nil)
|
215
216
|
let isKeyContentBase64Arg = isKeyContentBase64.asRubyArgument(name: "is_key_content_base64", type: nil)
|
@@ -661,10 +662,12 @@ public func appledoc(input: [String],
|
|
661
662
|
- skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
|
662
663
|
- force: Skip verification of HTML preview file
|
663
664
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
665
|
+
- screenshotProcessingTimeout: Timeout in seconds to wait before considering screenshot processing as failed, used to handle cases where uploads to the App Store are stuck in processing
|
664
666
|
- syncScreenshots: Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
665
667
|
- submitForReview: Submit the new version for Review after uploading everything
|
666
668
|
- verifyOnly: Verifies archive with App Store Connect without uploading
|
667
669
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
670
|
+
- versionCheckWaitRetryLimit: After submitting a new version, App Store Connect takes some time to recognize the new version and we must wait until it's available before attempting to upload metadata for it. There is a mechanism that will check if it's available and retry with an exponential backoff if it's not available yet. This option specifies how many times we should retry before giving up. Setting this to a value below 5 is not recommended and will likely cause failures. Increase this parameter when Apple servers seem to be degraded or slow
|
668
671
|
- automaticRelease: Should the app be automatically released once it's approved? (Cannot be used together with `auto_release_date`)
|
669
672
|
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Cannot be used together with `automatic_release`)
|
670
673
|
- phasedRelease: Enable the phased release feature of iTC
|
@@ -733,10 +736,12 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
|
|
733
736
|
skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
734
737
|
force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
735
738
|
overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
739
|
+
screenshotProcessingTimeout: Int = 3600,
|
736
740
|
syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
737
741
|
submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
738
742
|
verifyOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
739
743
|
rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
744
|
+
versionCheckWaitRetryLimit: Int = 7,
|
740
745
|
automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
741
746
|
autoReleaseDate: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
742
747
|
phasedRelease: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -798,10 +803,12 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
|
|
798
803
|
let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
|
799
804
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
800
805
|
let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
|
806
|
+
let screenshotProcessingTimeoutArg = RubyCommand.Argument(name: "screenshot_processing_timeout", value: screenshotProcessingTimeout, type: nil)
|
801
807
|
let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
|
802
808
|
let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
|
803
809
|
let verifyOnlyArg = verifyOnly.asRubyArgument(name: "verify_only", type: nil)
|
804
810
|
let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
|
811
|
+
let versionCheckWaitRetryLimitArg = RubyCommand.Argument(name: "version_check_wait_retry_limit", value: versionCheckWaitRetryLimit, type: nil)
|
805
812
|
let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
|
806
813
|
let autoReleaseDateArg = autoReleaseDate.asRubyArgument(name: "auto_release_date", type: nil)
|
807
814
|
let phasedReleaseArg = phasedRelease.asRubyArgument(name: "phased_release", type: nil)
|
@@ -862,10 +869,12 @@ public func appstore(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault
|
|
862
869
|
skipAppVersionUpdateArg,
|
863
870
|
forceArg,
|
864
871
|
overwriteScreenshotsArg,
|
872
|
+
screenshotProcessingTimeoutArg,
|
865
873
|
syncScreenshotsArg,
|
866
874
|
submitForReviewArg,
|
867
875
|
verifyOnlyArg,
|
868
876
|
rejectIfPossibleArg,
|
877
|
+
versionCheckWaitRetryLimitArg,
|
869
878
|
automaticReleaseArg,
|
870
879
|
autoReleaseDateArg,
|
871
880
|
phasedReleaseArg,
|
@@ -2108,8 +2117,8 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
|
|
2108
2117
|
Generate new localized screenshots on multiple devices (via _snapshot_)
|
2109
2118
|
|
2110
2119
|
- parameters:
|
2111
|
-
- workspace: Path the workspace file
|
2112
|
-
- project: Path the project file
|
2120
|
+
- workspace: Path to the workspace file
|
2121
|
+
- project: Path to the project file
|
2113
2122
|
- xcargs: Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
2114
2123
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
2115
2124
|
- devices: A list of devices you want to take the screenshots from
|
@@ -2317,8 +2326,8 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
|
|
2317
2326
|
Alias for the `capture_ios_screenshots` action
|
2318
2327
|
|
2319
2328
|
- parameters:
|
2320
|
-
- workspace: Path the workspace file
|
2321
|
-
- project: Path the project file
|
2329
|
+
- workspace: Path to the workspace file
|
2330
|
+
- project: Path to the project file
|
2322
2331
|
- xcargs: Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
2323
2332
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
2324
2333
|
- devices: A list of devices you want to take the screenshots from
|
@@ -3693,10 +3702,12 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
|
|
3693
3702
|
- skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
|
3694
3703
|
- force: Skip verification of HTML preview file
|
3695
3704
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
3705
|
+
- screenshotProcessingTimeout: Timeout in seconds to wait before considering screenshot processing as failed, used to handle cases where uploads to the App Store are stuck in processing
|
3696
3706
|
- syncScreenshots: Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
3697
3707
|
- submitForReview: Submit the new version for Review after uploading everything
|
3698
3708
|
- verifyOnly: Verifies archive with App Store Connect without uploading
|
3699
3709
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
3710
|
+
- versionCheckWaitRetryLimit: After submitting a new version, App Store Connect takes some time to recognize the new version and we must wait until it's available before attempting to upload metadata for it. There is a mechanism that will check if it's available and retry with an exponential backoff if it's not available yet. This option specifies how many times we should retry before giving up. Setting this to a value below 5 is not recommended and will likely cause failures. Increase this parameter when Apple servers seem to be degraded or slow
|
3700
3711
|
- automaticRelease: Should the app be automatically released once it's approved? (Cannot be used together with `auto_release_date`)
|
3701
3712
|
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Cannot be used together with `automatic_release`)
|
3702
3713
|
- phasedRelease: Enable the phased release feature of iTC
|
@@ -3765,10 +3776,12 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
|
|
3765
3776
|
skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.skipAppVersionUpdate),
|
3766
3777
|
force: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.force),
|
3767
3778
|
overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.overwriteScreenshots),
|
3779
|
+
screenshotProcessingTimeout: Int = deliverfile.screenshotProcessingTimeout,
|
3768
3780
|
syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.syncScreenshots),
|
3769
3781
|
submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.submitForReview),
|
3770
3782
|
verifyOnly: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.verifyOnly),
|
3771
3783
|
rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.rejectIfPossible),
|
3784
|
+
versionCheckWaitRetryLimit: Int = deliverfile.versionCheckWaitRetryLimit,
|
3772
3785
|
automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(deliverfile.automaticRelease),
|
3773
3786
|
autoReleaseDate: OptionalConfigValue<Int?> = .fastlaneDefault(deliverfile.autoReleaseDate),
|
3774
3787
|
phasedRelease: OptionalConfigValue<Bool> = .fastlaneDefault(deliverfile.phasedRelease),
|
@@ -3830,10 +3843,12 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
|
|
3830
3843
|
let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
|
3831
3844
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
3832
3845
|
let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
|
3846
|
+
let screenshotProcessingTimeoutArg = RubyCommand.Argument(name: "screenshot_processing_timeout", value: screenshotProcessingTimeout, type: nil)
|
3833
3847
|
let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
|
3834
3848
|
let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
|
3835
3849
|
let verifyOnlyArg = verifyOnly.asRubyArgument(name: "verify_only", type: nil)
|
3836
3850
|
let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
|
3851
|
+
let versionCheckWaitRetryLimitArg = RubyCommand.Argument(name: "version_check_wait_retry_limit", value: versionCheckWaitRetryLimit, type: nil)
|
3837
3852
|
let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
|
3838
3853
|
let autoReleaseDateArg = autoReleaseDate.asRubyArgument(name: "auto_release_date", type: nil)
|
3839
3854
|
let phasedReleaseArg = phasedRelease.asRubyArgument(name: "phased_release", type: nil)
|
@@ -3894,10 +3909,12 @@ public func deliver(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(
|
|
3894
3909
|
skipAppVersionUpdateArg,
|
3895
3910
|
forceArg,
|
3896
3911
|
overwriteScreenshotsArg,
|
3912
|
+
screenshotProcessingTimeoutArg,
|
3897
3913
|
syncScreenshotsArg,
|
3898
3914
|
submitForReviewArg,
|
3899
3915
|
verifyOnlyArg,
|
3900
3916
|
rejectIfPossibleArg,
|
3917
|
+
versionCheckWaitRetryLimitArg,
|
3901
3918
|
automaticReleaseArg,
|
3902
3919
|
autoReleaseDateArg,
|
3903
3920
|
phasedReleaseArg,
|
@@ -5246,17 +5263,21 @@ public func getPushCertificate(platform: String = "ios",
|
|
5246
5263
|
- parameters:
|
5247
5264
|
- path: The file(s) and path(s) you want to add
|
5248
5265
|
- shellEscape: Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path)
|
5266
|
+
- force: Allow adding otherwise ignored files
|
5249
5267
|
- pathspec: **DEPRECATED!** Use `--path` instead - The pathspec you want to add files from
|
5250
5268
|
*/
|
5251
5269
|
public func gitAdd(path: OptionalConfigValue<[String]?> = .fastlaneDefault(nil),
|
5252
5270
|
shellEscape: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
5271
|
+
force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
5253
5272
|
pathspec: OptionalConfigValue<String?> = .fastlaneDefault(nil))
|
5254
5273
|
{
|
5255
5274
|
let pathArg = path.asRubyArgument(name: "path", type: nil)
|
5256
5275
|
let shellEscapeArg = shellEscape.asRubyArgument(name: "shell_escape", type: nil)
|
5276
|
+
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
5257
5277
|
let pathspecArg = pathspec.asRubyArgument(name: "pathspec", type: nil)
|
5258
5278
|
let array: [RubyCommand.Argument?] = [pathArg,
|
5259
5279
|
shellEscapeArg,
|
5280
|
+
forceArg,
|
5260
5281
|
pathspecArg]
|
5261
5282
|
let args: [RubyCommand.Argument] = array
|
5262
5283
|
.filter { $0?.value != nil }
|
@@ -7552,6 +7573,7 @@ public func oclint(oclintPath: String = "oclint",
|
|
7552
7573
|
- appName: OneSignal App Name. This is required when creating an app (in other words, when `:app_id` is not set, and optional when updating an app
|
7553
7574
|
- androidToken: ANDROID GCM KEY
|
7554
7575
|
- androidGcmSenderId: GCM SENDER ID
|
7576
|
+
- fcmJson: FCM Service Account JSON File (in .json format)
|
7555
7577
|
- apnsP12: APNS P12 File (in .p12 format)
|
7556
7578
|
- apnsP12Password: APNS P12 password
|
7557
7579
|
- apnsEnv: APNS environment
|
@@ -7564,6 +7586,7 @@ public func onesignal(appId: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
7564
7586
|
appName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7565
7587
|
androidToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7566
7588
|
androidGcmSenderId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7589
|
+
fcmJson: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7567
7590
|
apnsP12: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7568
7591
|
apnsP12Password: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7569
7592
|
apnsEnv: String = "production",
|
@@ -7574,6 +7597,7 @@ public func onesignal(appId: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
7574
7597
|
let appNameArg = appName.asRubyArgument(name: "app_name", type: nil)
|
7575
7598
|
let androidTokenArg = androidToken.asRubyArgument(name: "android_token", type: nil)
|
7576
7599
|
let androidGcmSenderIdArg = androidGcmSenderId.asRubyArgument(name: "android_gcm_sender_id", type: nil)
|
7600
|
+
let fcmJsonArg = fcmJson.asRubyArgument(name: "fcm_json", type: nil)
|
7577
7601
|
let apnsP12Arg = apnsP12.asRubyArgument(name: "apns_p12", type: nil)
|
7578
7602
|
let apnsP12PasswordArg = apnsP12Password.asRubyArgument(name: "apns_p12_password", type: nil)
|
7579
7603
|
let apnsEnvArg = RubyCommand.Argument(name: "apns_env", value: apnsEnv, type: nil)
|
@@ -7583,6 +7607,7 @@ public func onesignal(appId: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
7583
7607
|
appNameArg,
|
7584
7608
|
androidTokenArg,
|
7585
7609
|
androidGcmSenderIdArg,
|
7610
|
+
fcmJsonArg,
|
7586
7611
|
apnsP12Arg,
|
7587
7612
|
apnsP12PasswordArg,
|
7588
7613
|
apnsEnvArg,
|
@@ -10438,8 +10463,8 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
|
|
10438
10463
|
Alias for the `capture_ios_screenshots` action
|
10439
10464
|
|
10440
10465
|
- parameters:
|
10441
|
-
- workspace: Path the workspace file
|
10442
|
-
- project: Path the project file
|
10466
|
+
- workspace: Path to the workspace file
|
10467
|
+
- project: Path to the project file
|
10443
10468
|
- xcargs: Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
10444
10469
|
- xcconfig: Use an extra XCCONFIG file to build your app
|
10445
10470
|
- devices: A list of devices you want to take the screenshots from
|
@@ -10913,6 +10938,7 @@ public func splunkmint(dsym: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
10913
10938
|
- xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
|
10914
10939
|
- xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
|
10915
10940
|
- verbose: Increase verbosity of informational output
|
10941
|
+
- veryVerbose: Increase verbosity to include debug output
|
10916
10942
|
- simulator: Specifies the simulator to pass for Swift Compiler (one of: iphonesimulator, macosx)
|
10917
10943
|
- simulatorArch: Specifies the architecture of the simulator to pass for Swift Compiler (one of: x86_64, arm64). Requires the simulator option to be specified also, otherwise, it's ignored
|
10918
10944
|
*/
|
@@ -10928,6 +10954,7 @@ public func spm(command: String = "build",
|
|
10928
10954
|
xcprettyOutput: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10929
10955
|
xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10930
10956
|
verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10957
|
+
veryVerbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10931
10958
|
simulator: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10932
10959
|
simulatorArch: String = "arm64")
|
10933
10960
|
{
|
@@ -10943,6 +10970,7 @@ public func spm(command: String = "build",
|
|
10943
10970
|
let xcprettyOutputArg = xcprettyOutput.asRubyArgument(name: "xcpretty_output", type: nil)
|
10944
10971
|
let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
|
10945
10972
|
let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
|
10973
|
+
let veryVerboseArg = veryVerbose.asRubyArgument(name: "very_verbose", type: nil)
|
10946
10974
|
let simulatorArg = simulator.asRubyArgument(name: "simulator", type: nil)
|
10947
10975
|
let simulatorArchArg = RubyCommand.Argument(name: "simulator_arch", value: simulatorArch, type: nil)
|
10948
10976
|
let array: [RubyCommand.Argument?] = [commandArg,
|
@@ -10957,6 +10985,7 @@ public func spm(command: String = "build",
|
|
10957
10985
|
xcprettyOutputArg,
|
10958
10986
|
xcprettyArgsArg,
|
10959
10987
|
verboseArg,
|
10988
|
+
veryVerboseArg,
|
10960
10989
|
simulatorArg,
|
10961
10990
|
simulatorArchArg]
|
10962
10991
|
let args: [RubyCommand.Argument] = array
|
@@ -12499,10 +12528,12 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
|
|
12499
12528
|
- skipAppVersionUpdate: Don’t create or update the app version that is being prepared for submission
|
12500
12529
|
- force: Skip verification of HTML preview file
|
12501
12530
|
- overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
|
12531
|
+
- screenshotProcessingTimeout: Timeout in seconds to wait before considering screenshot processing as failed, used to handle cases where uploads to the App Store are stuck in processing
|
12502
12532
|
- syncScreenshots: Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well
|
12503
12533
|
- submitForReview: Submit the new version for Review after uploading everything
|
12504
12534
|
- verifyOnly: Verifies archive with App Store Connect without uploading
|
12505
12535
|
- rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
|
12536
|
+
- versionCheckWaitRetryLimit: After submitting a new version, App Store Connect takes some time to recognize the new version and we must wait until it's available before attempting to upload metadata for it. There is a mechanism that will check if it's available and retry with an exponential backoff if it's not available yet. This option specifies how many times we should retry before giving up. Setting this to a value below 5 is not recommended and will likely cause failures. Increase this parameter when Apple servers seem to be degraded or slow
|
12506
12537
|
- automaticRelease: Should the app be automatically released once it's approved? (Cannot be used together with `auto_release_date`)
|
12507
12538
|
- autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Cannot be used together with `automatic_release`)
|
12508
12539
|
- phasedRelease: Enable the phased release feature of iTC
|
@@ -12571,10 +12602,12 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12571
12602
|
skipAppVersionUpdate: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12572
12603
|
force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12573
12604
|
overwriteScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12605
|
+
screenshotProcessingTimeout: Int = 3600,
|
12574
12606
|
syncScreenshots: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12575
12607
|
submitForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12576
12608
|
verifyOnly: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12577
12609
|
rejectIfPossible: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12610
|
+
versionCheckWaitRetryLimit: Int = 7,
|
12578
12611
|
automaticRelease: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
12579
12612
|
autoReleaseDate: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
12580
12613
|
phasedRelease: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -12636,10 +12669,12 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12636
12669
|
let skipAppVersionUpdateArg = skipAppVersionUpdate.asRubyArgument(name: "skip_app_version_update", type: nil)
|
12637
12670
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
12638
12671
|
let overwriteScreenshotsArg = overwriteScreenshots.asRubyArgument(name: "overwrite_screenshots", type: nil)
|
12672
|
+
let screenshotProcessingTimeoutArg = RubyCommand.Argument(name: "screenshot_processing_timeout", value: screenshotProcessingTimeout, type: nil)
|
12639
12673
|
let syncScreenshotsArg = syncScreenshots.asRubyArgument(name: "sync_screenshots", type: nil)
|
12640
12674
|
let submitForReviewArg = submitForReview.asRubyArgument(name: "submit_for_review", type: nil)
|
12641
12675
|
let verifyOnlyArg = verifyOnly.asRubyArgument(name: "verify_only", type: nil)
|
12642
12676
|
let rejectIfPossibleArg = rejectIfPossible.asRubyArgument(name: "reject_if_possible", type: nil)
|
12677
|
+
let versionCheckWaitRetryLimitArg = RubyCommand.Argument(name: "version_check_wait_retry_limit", value: versionCheckWaitRetryLimit, type: nil)
|
12643
12678
|
let automaticReleaseArg = automaticRelease.asRubyArgument(name: "automatic_release", type: nil)
|
12644
12679
|
let autoReleaseDateArg = autoReleaseDate.asRubyArgument(name: "auto_release_date", type: nil)
|
12645
12680
|
let phasedReleaseArg = phasedRelease.asRubyArgument(name: "phased_release", type: nil)
|
@@ -12700,10 +12735,12 @@ public func uploadToAppStore(apiKeyPath: OptionalConfigValue<String?> = .fastlan
|
|
12700
12735
|
skipAppVersionUpdateArg,
|
12701
12736
|
forceArg,
|
12702
12737
|
overwriteScreenshotsArg,
|
12738
|
+
screenshotProcessingTimeoutArg,
|
12703
12739
|
syncScreenshotsArg,
|
12704
12740
|
submitForReviewArg,
|
12705
12741
|
verifyOnlyArg,
|
12706
12742
|
rejectIfPossibleArg,
|
12743
|
+
versionCheckWaitRetryLimitArg,
|
12707
12744
|
automaticReleaseArg,
|
12708
12745
|
autoReleaseDateArg,
|
12709
12746
|
phasedReleaseArg,
|
@@ -13561,7 +13598,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
|
13561
13598
|
coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13562
13599
|
coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13563
13600
|
xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13564
|
-
ideFoundationPath: String = "/Applications/
|
13601
|
+
ideFoundationPath: String = "/Applications/Xcode_15.0.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
13565
13602
|
legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
13566
13603
|
{
|
13567
13604
|
let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
|
@@ -13764,4 +13801,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13764
13801
|
|
13765
13802
|
// Please don't remove the lines below
|
13766
13803
|
// They are used to detect outdated files
|
13767
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13804
|
+
// FastlaneRunnerAPIVersion [0.9.178]
|
@@ -68,7 +68,7 @@ open class LaneFile: NSObject, LaneFileProtocol {
|
|
68
68
|
|
69
69
|
public static var lanes: [String: String] {
|
70
70
|
var laneToMethodName: [String: String] = [:]
|
71
|
-
|
71
|
+
for name in laneFunctionNames {
|
72
72
|
let lowercasedName = name.lowercased()
|
73
73
|
if lowercasedName.hasSuffix("lane") {
|
74
74
|
laneToMethodName[lowercasedName] = name
|
@@ -93,8 +93,8 @@ extension OptionalConfigValue: ExpressibleByDictionaryLiteral where T == [String
|
|
93
93
|
|
94
94
|
public init(dictionaryLiteral elements: (Key, Value)...) {
|
95
95
|
var dict: [Key: Value] = [:]
|
96
|
-
elements
|
97
|
-
dict[
|
96
|
+
for element in elements {
|
97
|
+
dict[element.0] = element.1
|
98
98
|
}
|
99
99
|
self = .userDefined(dict)
|
100
100
|
}
|
@@ -2,10 +2,10 @@
|
|
2
2
|
// Copyright (c) 2024 FastlaneTools
|
3
3
|
|
4
4
|
public protocol SnapshotfileProtocol: AnyObject {
|
5
|
-
/// Path the workspace file
|
5
|
+
/// Path to the workspace file
|
6
6
|
var workspace: String? { get }
|
7
7
|
|
8
|
-
/// Path the project file
|
8
|
+
/// Path to the project file
|
9
9
|
var project: String? { get }
|
10
10
|
|
11
11
|
/// Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
|
@@ -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.
|
207
|
+
// FastlaneRunnerAPIVersion [0.9.117]
|
@@ -2,45 +2,45 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
5
|
+
"version": "0.53.10",
|
6
6
|
"bottle": {
|
7
7
|
"rebuild": 0,
|
8
8
|
"root_url": "https://ghcr.io/v2/homebrew/core",
|
9
9
|
"files": {
|
10
10
|
"arm64_sonoma": {
|
11
11
|
"cellar": ":any_skip_relocation",
|
12
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
13
|
-
"sha256": "
|
12
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:07a24ab550f0a4b26168b77c14b3b184e97552eb9071723af1103b1ff8d38bfd",
|
13
|
+
"sha256": "07a24ab550f0a4b26168b77c14b3b184e97552eb9071723af1103b1ff8d38bfd"
|
14
14
|
},
|
15
15
|
"arm64_ventura": {
|
16
16
|
"cellar": ":any_skip_relocation",
|
17
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
18
|
-
"sha256": "
|
17
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2781c7eb35cfe585ae8a5f41395694e67af26c5725d25d08530a4f6adb191842",
|
18
|
+
"sha256": "2781c7eb35cfe585ae8a5f41395694e67af26c5725d25d08530a4f6adb191842"
|
19
19
|
},
|
20
20
|
"arm64_monterey": {
|
21
21
|
"cellar": ":any_skip_relocation",
|
22
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
23
|
-
"sha256": "
|
22
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:be39b5733c7a181931682200f3fbece32146b84b7098fec1d9f4d22d248a91e9",
|
23
|
+
"sha256": "be39b5733c7a181931682200f3fbece32146b84b7098fec1d9f4d22d248a91e9"
|
24
24
|
},
|
25
25
|
"sonoma": {
|
26
26
|
"cellar": ":any_skip_relocation",
|
27
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
28
|
-
"sha256": "
|
27
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a080392954a019c55552ca7c6ab56033e8ab6aa1a598a0015b80ee12c62a4414",
|
28
|
+
"sha256": "a080392954a019c55552ca7c6ab56033e8ab6aa1a598a0015b80ee12c62a4414"
|
29
29
|
},
|
30
30
|
"ventura": {
|
31
31
|
"cellar": ":any_skip_relocation",
|
32
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
33
|
-
"sha256": "
|
32
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:7a5cc00008a574bcc3f94c8048fe058a4211a1f2952b65051a723212c07d8ce5",
|
33
|
+
"sha256": "7a5cc00008a574bcc3f94c8048fe058a4211a1f2952b65051a723212c07d8ce5"
|
34
34
|
},
|
35
35
|
"monterey": {
|
36
36
|
"cellar": ":any_skip_relocation",
|
37
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
38
|
-
"sha256": "
|
37
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:60b9451e66902de3233febbf20cfa3df39304fb329eb478a8cab277874da7869",
|
38
|
+
"sha256": "60b9451e66902de3233febbf20cfa3df39304fb329eb478a8cab277874da7869"
|
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:
|
43
|
-
"sha256": "
|
42
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d4bacdce7d4de2ca8e026577a94e87828038d25c28235a96f740fee46c317798",
|
43
|
+
"sha256": "d4bacdce7d4de2ca8e026577a94e87828038d25c28235a96f740fee46c317798"
|
44
44
|
}
|
45
45
|
}
|
46
46
|
}
|
@@ -82,12 +82,12 @@
|
|
82
82
|
"macOS": "13.6"
|
83
83
|
},
|
84
84
|
"sonoma": {
|
85
|
-
"HOMEBREW_VERSION": "4.
|
85
|
+
"HOMEBREW_VERSION": "4.3.2",
|
86
86
|
"HOMEBREW_PREFIX": "/opt/homebrew",
|
87
87
|
"Homebrew/homebrew-core": "api",
|
88
|
-
"CLT": "15.
|
89
|
-
"Xcode": "15.1",
|
90
|
-
"macOS": "14.
|
88
|
+
"CLT": "15.3.0.0.1.1708646388",
|
89
|
+
"Xcode": "15.0.1",
|
90
|
+
"macOS": "14.5"
|
91
91
|
}
|
92
92
|
}
|
93
93
|
}
|
@@ -39,6 +39,7 @@ module FastlaneCore
|
|
39
39
|
def self.installed?(path, in_keychain: nil)
|
40
40
|
UI.user_error!("Could not find file '#{path}'") unless File.exist?(path)
|
41
41
|
|
42
|
+
in_keychain &&= FastlaneCore::Helper.keychain_path(in_keychain)
|
42
43
|
ids = installed_identities(in_keychain: in_keychain)
|
43
44
|
ids += installed_installers(in_keychain: in_keychain)
|
44
45
|
finger_print = sha1_fingerprint(path)
|
@@ -52,7 +53,7 @@ module FastlaneCore
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def self.installed_identities(in_keychain: nil)
|
55
|
-
install_missing_wwdr_certificates
|
56
|
+
install_missing_wwdr_certificates(in_keychain: in_keychain)
|
56
57
|
|
57
58
|
available = list_available_identities(in_keychain: in_keychain)
|
58
59
|
# Match for this text against word boundaries to avoid edge cases around multiples of 10 identities!
|
@@ -111,12 +112,13 @@ module FastlaneCore
|
|
111
112
|
`#{commands.join(' ')}`
|
112
113
|
end
|
113
114
|
|
114
|
-
def self.installed_wwdr_certificates
|
115
|
+
def self.installed_wwdr_certificates(keychain: nil)
|
115
116
|
certificate_name = "Apple Worldwide Developer Relations"
|
117
|
+
keychain ||= wwdr_keychain # backwards compatibility
|
116
118
|
|
117
119
|
# Find all installed WWDRCA certificates
|
118
120
|
installed_certs = []
|
119
|
-
Helper.backticks("security find-certificate -a -c '#{certificate_name}' -p #{
|
121
|
+
Helper.backticks("security find-certificate -a -c '#{certificate_name}' -p #{keychain.shellescape}", print: false)
|
120
122
|
.lines
|
121
123
|
.each do |line|
|
122
124
|
if line.start_with?('-----BEGIN CERTIFICATE-----')
|
@@ -135,20 +137,21 @@ module FastlaneCore
|
|
135
137
|
.compact
|
136
138
|
end
|
137
139
|
|
138
|
-
def self.install_missing_wwdr_certificates
|
140
|
+
def self.install_missing_wwdr_certificates(in_keychain: nil)
|
139
141
|
# Install all Worldwide Developer Relations Intermediate Certificates listed here: https://www.apple.com/certificateauthority/
|
140
|
-
|
142
|
+
keychain = in_keychain || wwdr_keychain
|
143
|
+
missing = WWDRCA_CERTIFICATES.map { |c| c[:alias] } - installed_wwdr_certificates(keychain: keychain)
|
141
144
|
missing.each do |cert_alias|
|
142
|
-
install_wwdr_certificate(cert_alias)
|
145
|
+
install_wwdr_certificate(cert_alias, keychain: keychain)
|
143
146
|
end
|
144
147
|
missing.count
|
145
148
|
end
|
146
149
|
|
147
|
-
def self.install_wwdr_certificate(cert_alias)
|
150
|
+
def self.install_wwdr_certificate(cert_alias, keychain: nil)
|
148
151
|
url = WWDRCA_CERTIFICATES.find { |c| c[:alias] == cert_alias }.fetch(:url)
|
149
152
|
file = Tempfile.new([File.basename(url, ".cer"), ".cer"])
|
150
153
|
filename = file.path
|
151
|
-
keychain
|
154
|
+
keychain ||= wwdr_keychain # backwards compatibility
|
152
155
|
keychain = "-k #{keychain.shellescape}" unless keychain.empty?
|
153
156
|
|
154
157
|
# Attempts to fix an issue installing WWDR cert tends to fail on CIs
|
@@ -13,7 +13,7 @@ module FastlaneCore
|
|
13
13
|
|
14
14
|
def runtime_build_os_versions
|
15
15
|
@runtime_build_os_versions ||= begin
|
16
|
-
output, status = Open3.capture2('xcrun simctl list
|
16
|
+
output, status = Open3.capture2('xcrun simctl list -j runtimes')
|
17
17
|
raise status unless status.success?
|
18
18
|
json = JSON.parse(output)
|
19
19
|
json['runtimes'].map { |h| [h['buildversion'], h['version']] }.to_h
|
@@ -482,20 +482,5 @@ module FastlaneCore
|
|
482
482
|
UI.error("Your entries do not match. Please try again")
|
483
483
|
end
|
484
484
|
end
|
485
|
-
|
486
|
-
# URI.open added by `require 'open-uri'` is not available in Ruby 2.4. This helper lets you open a URI
|
487
|
-
# by choosing appropriate interface to do so depending on Ruby version. This helper is subject to be removed
|
488
|
-
# when fastlane drops Ruby 2.4 support.
|
489
|
-
def self.open_uri(*rest, &block)
|
490
|
-
require 'open-uri'
|
491
|
-
|
492
|
-
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5')
|
493
|
-
dup = rest.dup
|
494
|
-
uri = dup.shift
|
495
|
-
URI.parse(uri).open(*dup, &block)
|
496
|
-
else
|
497
|
-
URI.open(*rest, &block)
|
498
|
-
end
|
499
|
-
end
|
500
485
|
end
|
501
486
|
end
|