fastlane 2.203.0 → 2.204.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +92 -92
- data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
- data/fastlane/lib/fastlane/actions/trainer.rb +2 -2
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +1 -1
- data/fastlane/lib/fastlane/swift_lane_manager.rb +11 -3
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +54 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Atomic.swift +150 -0
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +35 -11
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +30 -20
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +1 -1
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +2 -2
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +7 -3
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/Runner.swift +9 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +2 -2
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/SocketClient.swift +5 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +19 -19
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +5 -1
- data/match/lib/match/nuke.rb +33 -9
- data/match/lib/match/options.rb +6 -1
- data/match/lib/match/storage/s3_storage.rb +3 -3
- data/pilot/lib/pilot/build_manager.rb +17 -7
- data/pilot/lib/pilot/options.rb +6 -1
- data/scan/lib/scan/runner.rb +9 -5
- data/snapshot/lib/assets/SnapshotHelper.swift +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +5 -1
- data/spaceship/lib/spaceship/portal/certificate.rb +4 -3
- data/trainer/lib/assets/junit.xml.erb +4 -1
- data/trainer/lib/trainer/.test_parser.rb.swp +0 -0
- data/trainer/lib/trainer/test_parser.rb +11 -2
- metadata +21 -22
- data/fastlane_core/lib/fastlane_core/.helper.rb.swp +0 -0
- data/scan/lib/scan/.detect_values.rb.swp +0 -0
- data/scan/lib/scan/.runner.rb.swp +0 -0
@@ -6643,8 +6643,9 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
6643
6643
|
- force: Renew the provisioning profiles every time you run match
|
6644
6644
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
|
6645
6645
|
- includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
|
6646
|
-
- forceForNewCertificates: Renew the provisioning profiles if the
|
6646
|
+
- forceForNewCertificates: Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
|
6647
6647
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
6648
|
+
- safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
|
6648
6649
|
- skipDocs: Skip generation of a README.md for the created git repository
|
6649
6650
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
|
6650
6651
|
- deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
@@ -6694,6 +6695,7 @@ public func match(type: String = matchfile.type,
|
|
6694
6695
|
includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.includeAllCertificates),
|
6695
6696
|
forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.forceForNewCertificates),
|
6696
6697
|
skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipConfirmation),
|
6698
|
+
safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.safeRemoveCerts),
|
6697
6699
|
skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.skipDocs),
|
6698
6700
|
platform: String = matchfile.platform,
|
6699
6701
|
deriveCatalystAppIdentifier: OptionalConfigValue<Bool> = .fastlaneDefault(matchfile.deriveCatalystAppIdentifier),
|
@@ -6741,6 +6743,7 @@ public func match(type: String = matchfile.type,
|
|
6741
6743
|
let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
|
6742
6744
|
let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
|
6743
6745
|
let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
|
6746
|
+
let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
|
6744
6747
|
let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
|
6745
6748
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
6746
6749
|
let deriveCatalystAppIdentifierArg = deriveCatalystAppIdentifier.asRubyArgument(name: "derive_catalyst_app_identifier", type: nil)
|
@@ -6787,6 +6790,7 @@ public func match(type: String = matchfile.type,
|
|
6787
6790
|
includeAllCertificatesArg,
|
6788
6791
|
forceForNewCertificatesArg,
|
6789
6792
|
skipConfirmationArg,
|
6793
|
+
safeRemoveCertsArg,
|
6790
6794
|
skipDocsArg,
|
6791
6795
|
platformArg,
|
6792
6796
|
deriveCatalystAppIdentifierArg,
|
@@ -6842,8 +6846,9 @@ public func match(type: String = matchfile.type,
|
|
6842
6846
|
- force: Renew the provisioning profiles every time you run match
|
6843
6847
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
|
6844
6848
|
- includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
|
6845
|
-
- forceForNewCertificates: Renew the provisioning profiles if the
|
6849
|
+
- forceForNewCertificates: Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true'
|
6846
6850
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
6851
|
+
- safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
|
6847
6852
|
- skipDocs: Skip generation of a README.md for the created git repository
|
6848
6853
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
|
6849
6854
|
- deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
@@ -6897,6 +6902,7 @@ public func matchNuke(type: String = "development",
|
|
6897
6902
|
includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
6898
6903
|
forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
6899
6904
|
skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
6905
|
+
safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
6900
6906
|
skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
6901
6907
|
platform: String = "ios",
|
6902
6908
|
deriveCatalystAppIdentifier: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -6944,6 +6950,7 @@ public func matchNuke(type: String = "development",
|
|
6944
6950
|
let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
|
6945
6951
|
let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
|
6946
6952
|
let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
|
6953
|
+
let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
|
6947
6954
|
let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
|
6948
6955
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
6949
6956
|
let deriveCatalystAppIdentifierArg = deriveCatalystAppIdentifier.asRubyArgument(name: "derive_catalyst_app_identifier", type: nil)
|
@@ -6990,6 +6997,7 @@ public func matchNuke(type: String = "development",
|
|
6990
6997
|
includeAllCertificatesArg,
|
6991
6998
|
forceForNewCertificatesArg,
|
6992
6999
|
skipConfirmationArg,
|
7000
|
+
safeRemoveCertsArg,
|
6993
7001
|
skipDocsArg,
|
6994
7002
|
platformArg,
|
6995
7003
|
deriveCatalystAppIdentifierArg,
|
@@ -7562,6 +7570,7 @@ public func pem(platform: String = "ios",
|
|
7562
7570
|
- waitProcessingTimeoutDuration: Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will `force stop` to wait for App Store Connect processing and exit with exception
|
7563
7571
|
- waitForUploadedBuild: **DEPRECATED!** No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used
|
7564
7572
|
- rejectBuildWaitingForReview: Expire previous if it's 'waiting for review'
|
7573
|
+
- submitBetaReview: Send the build for a beta review
|
7565
7574
|
|
7566
7575
|
More details can be found on https://docs.fastlane.tools/actions/pilot/.
|
7567
7576
|
This integration will only do the TestFlight upload.
|
@@ -7603,7 +7612,8 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7603
7612
|
waitProcessingInterval: Int = 30,
|
7604
7613
|
waitProcessingTimeoutDuration: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
7605
7614
|
waitForUploadedBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
7606
|
-
rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false)
|
7615
|
+
rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
7616
|
+
submitBetaReview: OptionalConfigValue<Bool> = .fastlaneDefault(true))
|
7607
7617
|
{
|
7608
7618
|
let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
|
7609
7619
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
@@ -7643,6 +7653,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7643
7653
|
let waitProcessingTimeoutDurationArg = waitProcessingTimeoutDuration.asRubyArgument(name: "wait_processing_timeout_duration", type: nil)
|
7644
7654
|
let waitForUploadedBuildArg = waitForUploadedBuild.asRubyArgument(name: "wait_for_uploaded_build", type: nil)
|
7645
7655
|
let rejectBuildWaitingForReviewArg = rejectBuildWaitingForReview.asRubyArgument(name: "reject_build_waiting_for_review", type: nil)
|
7656
|
+
let submitBetaReviewArg = submitBetaReview.asRubyArgument(name: "submit_beta_review", type: nil)
|
7646
7657
|
let array: [RubyCommand.Argument?] = [apiKeyPathArg,
|
7647
7658
|
apiKeyArg,
|
7648
7659
|
usernameArg,
|
@@ -7680,7 +7691,8 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7680
7691
|
waitProcessingIntervalArg,
|
7681
7692
|
waitProcessingTimeoutDurationArg,
|
7682
7693
|
waitForUploadedBuildArg,
|
7683
|
-
rejectBuildWaitingForReviewArg
|
7694
|
+
rejectBuildWaitingForReviewArg,
|
7695
|
+
submitBetaReviewArg]
|
7684
7696
|
let args: [RubyCommand.Argument] = array
|
7685
7697
|
.filter { $0?.value != nil }
|
7686
7698
|
.compactMap { $0 }
|
@@ -8228,7 +8240,7 @@ public func puts(message: OptionalConfigValue<String?> = .fastlaneDefault(nil))
|
|
8228
8240
|
This can be useful when basing your release process on the version string only stored in one place - in the podspec.
|
8229
8241
|
As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release).
|
8230
8242
|
*/
|
8231
|
-
@discardableResult public func readPodspec(path: String) -> [String:
|
8243
|
+
@discardableResult public func readPodspec(path: String) -> [String: Any] {
|
8232
8244
|
let pathArg = RubyCommand.Argument(name: "path", value: path, type: nil)
|
8233
8245
|
let array: [RubyCommand.Argument?] = [pathArg]
|
8234
8246
|
let args: [RubyCommand.Argument] = array
|
@@ -11024,8 +11036,9 @@ public func swiftlint(mode: String = "lint",
|
|
11024
11036
|
- force: Renew the provisioning profiles every time you run match
|
11025
11037
|
- forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'
|
11026
11038
|
- includeAllCertificates: Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
|
11027
|
-
- forceForNewCertificates: Renew the provisioning profiles if the
|
11039
|
+
- 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'
|
11028
11040
|
- skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
|
11041
|
+
- safeRemoveCerts: Remove certs from repository during nuke without revoking them on the developer portal
|
11029
11042
|
- skipDocs: Skip generation of a README.md for the created git repository
|
11030
11043
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
|
11031
11044
|
- deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
@@ -11075,6 +11088,7 @@ public func syncCodeSigning(type: String = "development",
|
|
11075
11088
|
includeAllCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11076
11089
|
forceForNewCertificates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11077
11090
|
skipConfirmation: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11091
|
+
safeRemoveCerts: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11078
11092
|
skipDocs: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11079
11093
|
platform: String = "ios",
|
11080
11094
|
deriveCatalystAppIdentifier: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -11122,6 +11136,7 @@ public func syncCodeSigning(type: String = "development",
|
|
11122
11136
|
let includeAllCertificatesArg = includeAllCertificates.asRubyArgument(name: "include_all_certificates", type: nil)
|
11123
11137
|
let forceForNewCertificatesArg = forceForNewCertificates.asRubyArgument(name: "force_for_new_certificates", type: nil)
|
11124
11138
|
let skipConfirmationArg = skipConfirmation.asRubyArgument(name: "skip_confirmation", type: nil)
|
11139
|
+
let safeRemoveCertsArg = safeRemoveCerts.asRubyArgument(name: "safe_remove_certs", type: nil)
|
11125
11140
|
let skipDocsArg = skipDocs.asRubyArgument(name: "skip_docs", type: nil)
|
11126
11141
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
11127
11142
|
let deriveCatalystAppIdentifierArg = deriveCatalystAppIdentifier.asRubyArgument(name: "derive_catalyst_app_identifier", type: nil)
|
@@ -11168,6 +11183,7 @@ public func syncCodeSigning(type: String = "development",
|
|
11168
11183
|
includeAllCertificatesArg,
|
11169
11184
|
forceForNewCertificatesArg,
|
11170
11185
|
skipConfirmationArg,
|
11186
|
+
safeRemoveCertsArg,
|
11171
11187
|
skipDocsArg,
|
11172
11188
|
platformArg,
|
11173
11189
|
deriveCatalystAppIdentifierArg,
|
@@ -11312,6 +11328,7 @@ public func testfairy(apiKey: String,
|
|
11312
11328
|
- 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
|
11313
11329
|
- waitForUploadedBuild: **DEPRECATED!** No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used
|
11314
11330
|
- rejectBuildWaitingForReview: Expire previous if it's 'waiting for review'
|
11331
|
+
- submitBetaReview: Send the build for a beta review
|
11315
11332
|
|
11316
11333
|
More details can be found on https://docs.fastlane.tools/actions/pilot/.
|
11317
11334
|
This integration will only do the TestFlight upload.
|
@@ -11353,7 +11370,8 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11353
11370
|
waitProcessingInterval: Int = 30,
|
11354
11371
|
waitProcessingTimeoutDuration: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
11355
11372
|
waitForUploadedBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11356
|
-
rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false)
|
11373
|
+
rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11374
|
+
submitBetaReview: OptionalConfigValue<Bool> = .fastlaneDefault(true))
|
11357
11375
|
{
|
11358
11376
|
let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
|
11359
11377
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
@@ -11393,6 +11411,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11393
11411
|
let waitProcessingTimeoutDurationArg = waitProcessingTimeoutDuration.asRubyArgument(name: "wait_processing_timeout_duration", type: nil)
|
11394
11412
|
let waitForUploadedBuildArg = waitForUploadedBuild.asRubyArgument(name: "wait_for_uploaded_build", type: nil)
|
11395
11413
|
let rejectBuildWaitingForReviewArg = rejectBuildWaitingForReview.asRubyArgument(name: "reject_build_waiting_for_review", type: nil)
|
11414
|
+
let submitBetaReviewArg = submitBetaReview.asRubyArgument(name: "submit_beta_review", type: nil)
|
11396
11415
|
let array: [RubyCommand.Argument?] = [apiKeyPathArg,
|
11397
11416
|
apiKeyArg,
|
11398
11417
|
usernameArg,
|
@@ -11430,7 +11449,8 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11430
11449
|
waitProcessingIntervalArg,
|
11431
11450
|
waitProcessingTimeoutDurationArg,
|
11432
11451
|
waitForUploadedBuildArg,
|
11433
|
-
rejectBuildWaitingForReviewArg
|
11452
|
+
rejectBuildWaitingForReviewArg,
|
11453
|
+
submitBetaReviewArg]
|
11434
11454
|
let args: [RubyCommand.Argument] = array
|
11435
11455
|
.filter { $0?.value != nil }
|
11436
11456
|
.compactMap { $0 }
|
@@ -12707,6 +12727,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
12707
12727
|
- 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
|
12708
12728
|
- waitForUploadedBuild: **DEPRECATED!** No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used
|
12709
12729
|
- rejectBuildWaitingForReview: Expire previous if it's 'waiting for review'
|
12730
|
+
- submitBetaReview: Send the build for a beta review
|
12710
12731
|
|
12711
12732
|
More details can be found on https://docs.fastlane.tools/actions/pilot/.
|
12712
12733
|
This integration will only do the TestFlight upload.
|
@@ -12748,7 +12769,8 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12748
12769
|
waitProcessingInterval: Int = 30,
|
12749
12770
|
waitProcessingTimeoutDuration: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
12750
12771
|
waitForUploadedBuild: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12751
|
-
rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false)
|
12772
|
+
rejectBuildWaitingForReview: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
12773
|
+
submitBetaReview: OptionalConfigValue<Bool> = .fastlaneDefault(true))
|
12752
12774
|
{
|
12753
12775
|
let apiKeyPathArg = apiKeyPath.asRubyArgument(name: "api_key_path", type: nil)
|
12754
12776
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
@@ -12788,6 +12810,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12788
12810
|
let waitProcessingTimeoutDurationArg = waitProcessingTimeoutDuration.asRubyArgument(name: "wait_processing_timeout_duration", type: nil)
|
12789
12811
|
let waitForUploadedBuildArg = waitForUploadedBuild.asRubyArgument(name: "wait_for_uploaded_build", type: nil)
|
12790
12812
|
let rejectBuildWaitingForReviewArg = rejectBuildWaitingForReview.asRubyArgument(name: "reject_build_waiting_for_review", type: nil)
|
12813
|
+
let submitBetaReviewArg = submitBetaReview.asRubyArgument(name: "submit_beta_review", type: nil)
|
12791
12814
|
let array: [RubyCommand.Argument?] = [apiKeyPathArg,
|
12792
12815
|
apiKeyArg,
|
12793
12816
|
usernameArg,
|
@@ -12825,7 +12848,8 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12825
12848
|
waitProcessingIntervalArg,
|
12826
12849
|
waitProcessingTimeoutDurationArg,
|
12827
12850
|
waitForUploadedBuildArg,
|
12828
|
-
rejectBuildWaitingForReviewArg
|
12851
|
+
rejectBuildWaitingForReviewArg,
|
12852
|
+
submitBetaReviewArg]
|
12829
12853
|
let args: [RubyCommand.Argument] = array
|
12830
12854
|
.filter { $0?.value != nil }
|
12831
12855
|
.compactMap { $0 }
|
@@ -13406,4 +13430,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13406
13430
|
|
13407
13431
|
// Please don't remove the lines below
|
13408
13432
|
// They are used to detect outdated files
|
13409
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13433
|
+
// FastlaneRunnerAPIVersion [0.9.152]
|
@@ -10,6 +10,7 @@
|
|
10
10
|
0311E387230AC1B20060BB5C /* Plugins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0311E386230AC1B20060BB5C /* Plugins.swift */; };
|
11
11
|
0311E38B230AC9490060BB5C /* Actions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0311E38A230AC9490060BB5C /* Actions.swift */; };
|
12
12
|
1257253924B7992C00E04FA3 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1257253824B7992B00E04FA3 /* main.swift */; };
|
13
|
+
1267C3F42773A43E004DE48A /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1267C3F32773A43E004DE48A /* Atomic.swift */; };
|
13
14
|
12D2EB8D2620D83C00844013 /* OptionalConfigValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */; };
|
14
15
|
B302067B1F5E3E9000DE6EBD /* SnapshotfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */; };
|
15
16
|
B302067C1F5E3E9000DE6EBD /* GymfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */; };
|
@@ -26,6 +27,7 @@
|
|
26
27
|
B3BA65AC1F5A269100B34850 /* SocketClientDelegateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA65A31F5A269100B34850 /* SocketClientDelegateProtocol.swift */; };
|
27
28
|
B3BA65AD1F5A269100B34850 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA65A41F5A269100B34850 /* SocketResponse.swift */; };
|
28
29
|
B3BA65AF1F5A2D5C00B34850 /* RunnerArgument.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA65AE1F5A2D5C00B34850 /* RunnerArgument.swift */; };
|
30
|
+
C0459CAC27261897002CDFB9 /* FastlaneRunner in CopyFiles */ = {isa = PBXBuildFile; fileRef = D556D6A91F6A08F5003108E3 /* FastlaneRunner */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
29
31
|
D55B28C31F6C588300DC42C5 /* Deliverfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55B28BC1F6C588300DC42C5 /* Deliverfile.swift */; };
|
30
32
|
D55B28C41F6C588300DC42C5 /* Gymfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55B28BD1F6C588300DC42C5 /* Gymfile.swift */; };
|
31
33
|
D55B28C51F6C588300DC42C5 /* Matchfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55B28BE1F6C588300DC42C5 /* Matchfile.swift */; };
|
@@ -40,10 +42,24 @@
|
|
40
42
|
D5D1DE991FFEE8EA00502A00 /* RubyCommandable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D1DE981FFEE8E900502A00 /* RubyCommandable.swift */; };
|
41
43
|
/* End PBXBuildFile section */
|
42
44
|
|
45
|
+
/* Begin PBXCopyFilesBuildPhase section */
|
46
|
+
C0459CAB27261886002CDFB9 /* CopyFiles */ = {
|
47
|
+
isa = PBXCopyFilesBuildPhase;
|
48
|
+
buildActionMask = 2147483647;
|
49
|
+
dstPath = $SRCROOT/../..;
|
50
|
+
dstSubfolderSpec = 0;
|
51
|
+
files = (
|
52
|
+
C0459CAC27261897002CDFB9 /* FastlaneRunner in CopyFiles */,
|
53
|
+
);
|
54
|
+
runOnlyForDeploymentPostprocessing = 0;
|
55
|
+
};
|
56
|
+
/* End PBXCopyFilesBuildPhase section */
|
57
|
+
|
43
58
|
/* Begin PBXFileReference section */
|
44
59
|
0311E386230AC1B20060BB5C /* Plugins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Plugins.swift; path = ../Plugins.swift; sourceTree = "<group>"; };
|
45
60
|
0311E38A230AC9490060BB5C /* Actions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Actions.swift; path = ../Actions.swift; sourceTree = "<group>"; };
|
46
61
|
1257253824B7992B00E04FA3 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = ../main.swift; sourceTree = "<group>"; };
|
62
|
+
1267C3F32773A43E004DE48A /* Atomic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Atomic.swift; path = ../Atomic.swift; sourceTree = "<group>"; };
|
47
63
|
12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OptionalConfigValue.swift; path = ../OptionalConfigValue.swift; sourceTree = "<group>"; };
|
48
64
|
B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotfileProtocol.swift; path = ../SnapshotfileProtocol.swift; sourceTree = "<group>"; };
|
49
65
|
B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GymfileProtocol.swift; path = ../GymfileProtocol.swift; sourceTree = "<group>"; };
|
@@ -121,6 +137,7 @@
|
|
121
137
|
B3BA65B11F5A325E00B34850 /* Networking */ = {
|
122
138
|
isa = PBXGroup;
|
123
139
|
children = (
|
140
|
+
1267C3F32773A43E004DE48A /* Atomic.swift */,
|
124
141
|
B3144C072005533400470AFE /* README.txt */,
|
125
142
|
D5B8A5B21FFDC49D00536B24 /* ControlCommand.swift */,
|
126
143
|
B3BA65A01F5A269100B34850 /* RubyCommand.swift */,
|
@@ -181,7 +198,7 @@
|
|
181
198
|
buildPhases = (
|
182
199
|
B33BAF531F51F8D90001A751 /* Sources */,
|
183
200
|
B33BAF541F51F8D90001A751 /* Frameworks */,
|
184
|
-
|
201
|
+
C0459CAB27261886002CDFB9 /* CopyFiles */,
|
185
202
|
);
|
186
203
|
buildRules = (
|
187
204
|
);
|
@@ -199,7 +216,7 @@
|
|
199
216
|
isa = PBXProject;
|
200
217
|
attributes = {
|
201
218
|
LastSwiftUpdateCheck = 0830;
|
202
|
-
LastUpgradeCheck =
|
219
|
+
LastUpgradeCheck = 1300;
|
203
220
|
ORGANIZATIONNAME = "Joshua Liebowitz";
|
204
221
|
TargetAttributes = {
|
205
222
|
B33BAF561F51F8D90001A751 = {
|
@@ -211,11 +228,11 @@
|
|
211
228
|
};
|
212
229
|
buildConfigurationList = B33BAF521F51F8D90001A751 /* Build configuration list for PBXProject "FastlaneSwiftRunner" */;
|
213
230
|
compatibilityVersion = "Xcode 3.2";
|
214
|
-
developmentRegion =
|
231
|
+
developmentRegion = en;
|
215
232
|
hasScannedForEncodings = 0;
|
216
233
|
knownRegions = (
|
217
|
-
English,
|
218
234
|
en,
|
235
|
+
Base,
|
219
236
|
);
|
220
237
|
mainGroup = B33BAF4E1F51F8D90001A751;
|
221
238
|
productRefGroup = B33BAF4E1F51F8D90001A751;
|
@@ -227,22 +244,6 @@
|
|
227
244
|
};
|
228
245
|
/* End PBXProject section */
|
229
246
|
|
230
|
-
/* Begin PBXShellScriptBuildPhase section */
|
231
|
-
D529C72B1F68BB1C0036536D /* ShellScript */ = {
|
232
|
-
isa = PBXShellScriptBuildPhase;
|
233
|
-
buildActionMask = 2147483647;
|
234
|
-
files = (
|
235
|
-
);
|
236
|
-
inputPaths = (
|
237
|
-
);
|
238
|
-
outputPaths = (
|
239
|
-
);
|
240
|
-
runOnlyForDeploymentPostprocessing = 0;
|
241
|
-
shellPath = /bin/sh;
|
242
|
-
shellScript = "cd \"${SRCROOT}\"\ncd ../..\ncp \"${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}\" .\n";
|
243
|
-
};
|
244
|
-
/* End PBXShellScriptBuildPhase section */
|
245
|
-
|
246
247
|
/* Begin PBXSourcesBuildPhase section */
|
247
248
|
B33BAF531F51F8D90001A751 /* Sources */ = {
|
248
249
|
isa = PBXSourcesBuildPhase;
|
@@ -252,6 +253,7 @@
|
|
252
253
|
D5D1DE991FFEE8EA00502A00 /* RubyCommandable.swift in Sources */,
|
253
254
|
D55B28C41F6C588300DC42C5 /* Gymfile.swift in Sources */,
|
254
255
|
B302067D1F5E3E9000DE6EBD /* MatchfileProtocol.swift in Sources */,
|
256
|
+
1267C3F42773A43E004DE48A /* Atomic.swift in Sources */,
|
255
257
|
B3BA65AC1F5A269100B34850 /* SocketClientDelegateProtocol.swift in Sources */,
|
256
258
|
B3BA65A71F5A269100B34850 /* LaneFileProtocol.swift in Sources */,
|
257
259
|
D55B28C61F6C588300DC42C5 /* Precheckfile.swift in Sources */,
|
@@ -299,6 +301,7 @@
|
|
299
301
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
300
302
|
CLANG_WARN_COMMA = YES;
|
301
303
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
304
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
302
305
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
303
306
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
304
307
|
CLANG_WARN_EMPTY_BODY = YES;
|
@@ -306,8 +309,10 @@
|
|
306
309
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
307
310
|
CLANG_WARN_INT_CONVERSION = YES;
|
308
311
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
312
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
309
313
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
310
314
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
315
|
+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
311
316
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
312
317
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
313
318
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
@@ -355,6 +360,7 @@
|
|
355
360
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
356
361
|
CLANG_WARN_COMMA = YES;
|
357
362
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
363
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
358
364
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
359
365
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
360
366
|
CLANG_WARN_EMPTY_BODY = YES;
|
@@ -362,8 +368,10 @@
|
|
362
368
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
363
369
|
CLANG_WARN_INT_CONVERSION = YES;
|
364
370
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
371
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
365
372
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
366
373
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
374
|
+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
367
375
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
368
376
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
369
377
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
@@ -394,6 +402,7 @@
|
|
394
402
|
isa = XCBuildConfiguration;
|
395
403
|
buildSettings = {
|
396
404
|
CLANG_ENABLE_MODULES = YES;
|
405
|
+
CODE_SIGN_IDENTITY = "-";
|
397
406
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
|
398
407
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
399
408
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
@@ -405,6 +414,7 @@
|
|
405
414
|
isa = XCBuildConfiguration;
|
406
415
|
buildSettings = {
|
407
416
|
CLANG_ENABLE_MODULES = YES;
|
417
|
+
CODE_SIGN_IDENTITY = "-";
|
408
418
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
|
409
419
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
410
420
|
SWIFT_VERSION = 4.0;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// GymfileProtocol.swift
|
2
2
|
// Copyright (c) 2022 FastlaneTools
|
3
3
|
|
4
|
-
public protocol GymfileProtocol:
|
4
|
+
public protocol GymfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
6
6
|
var workspace: String? { get }
|
7
7
|
|
@@ -204,4 +204,4 @@ public extension GymfileProtocol {
|
|
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.102]
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
import Foundation
|
12
12
|
|
13
|
-
public protocol LaneFileProtocol:
|
13
|
+
public protocol LaneFileProtocol: AnyObject {
|
14
14
|
var fastlaneVersion: String { get }
|
15
15
|
static func runLane(from fastfile: LaneFile?, named lane: String, with parameters: [String: String]) -> Bool
|
16
16
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// MatchfileProtocol.swift
|
2
2
|
// Copyright (c) 2022 FastlaneTools
|
3
3
|
|
4
|
-
public protocol MatchfileProtocol:
|
4
|
+
public protocol MatchfileProtocol: AnyObject {
|
5
5
|
/// Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
|
6
6
|
var type: String { get }
|
7
7
|
|
@@ -104,12 +104,15 @@ public protocol MatchfileProtocol: class {
|
|
104
104
|
/// Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type
|
105
105
|
var includeAllCertificates: Bool { get }
|
106
106
|
|
107
|
-
/// Renew the provisioning profiles if the
|
107
|
+
/// 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'
|
108
108
|
var forceForNewCertificates: Bool { get }
|
109
109
|
|
110
110
|
/// Disables confirmation prompts during nuke, answering them with yes
|
111
111
|
var skipConfirmation: Bool { get }
|
112
112
|
|
113
|
+
/// Remove certs from repository during nuke without revoking them on the developer portal
|
114
|
+
var safeRemoveCerts: Bool { get }
|
115
|
+
|
113
116
|
/// Skip generation of a README.md for the created git repository
|
114
117
|
var skipDocs: Bool { get }
|
115
118
|
|
@@ -178,6 +181,7 @@ public extension MatchfileProtocol {
|
|
178
181
|
var includeAllCertificates: Bool { return false }
|
179
182
|
var forceForNewCertificates: Bool { return false }
|
180
183
|
var skipConfirmation: Bool { return false }
|
184
|
+
var safeRemoveCerts: Bool { return false }
|
181
185
|
var skipDocs: Bool { return false }
|
182
186
|
var platform: String { return "ios" }
|
183
187
|
var deriveCatalystAppIdentifier: Bool { return false }
|
@@ -192,4 +196,4 @@ public extension MatchfileProtocol {
|
|
192
196
|
|
193
197
|
// Please don't remove the lines below
|
194
198
|
// They are used to detect outdated files
|
195
|
-
// FastlaneRunnerAPIVersion [0.9.
|
199
|
+
// FastlaneRunnerAPIVersion [0.9.96]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// PrecheckfileProtocol.swift
|
2
2
|
// Copyright (c) 2022 FastlaneTools
|
3
3
|
|
4
|
-
public protocol PrecheckfileProtocol:
|
4
|
+
public protocol PrecheckfileProtocol: AnyObject {
|
5
5
|
/// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
|
6
6
|
var apiKeyPath: String? { get }
|
7
7
|
|
@@ -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.
|
55
|
+
// FastlaneRunnerAPIVersion [0.9.95]
|
data/fastlane/swift/Runner.swift
CHANGED
@@ -25,7 +25,13 @@ class Runner {
|
|
25
25
|
private var returnValue: String? // lol, so safe
|
26
26
|
private var currentlyExecutingCommand: RubyCommandable?
|
27
27
|
private var shouldLeaveDispatchGroupDuringDisconnect = false
|
28
|
-
private var executeNext:
|
28
|
+
private var executeNext: AtomicDictionary<String, Bool> = {
|
29
|
+
if #available(macOS 10.12, *) {
|
30
|
+
return UnfairAtomicDictionary<String, Bool>()
|
31
|
+
} else {
|
32
|
+
return OSSPinAtomicDictionary<String, Bool>()
|
33
|
+
}
|
34
|
+
}()
|
29
35
|
|
30
36
|
func executeCommand(_ command: RubyCommandable) -> String {
|
31
37
|
dispatchGroup.enter()
|
@@ -261,6 +267,8 @@ private extension DispatchTimeInterval {
|
|
261
267
|
result = TimeInterval(value) * 0.000_000_001
|
262
268
|
case .never:
|
263
269
|
fatalError()
|
270
|
+
@unknown default:
|
271
|
+
fatalError()
|
264
272
|
}
|
265
273
|
return result
|
266
274
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// ScanfileProtocol.swift
|
2
2
|
// Copyright (c) 2022 FastlaneTools
|
3
3
|
|
4
|
-
public protocol ScanfileProtocol:
|
4
|
+
public protocol ScanfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
6
6
|
var workspace: String? { get }
|
7
7
|
|
@@ -312,4 +312,4 @@ public extension ScanfileProtocol {
|
|
312
312
|
|
313
313
|
// Please don't remove the lines below
|
314
314
|
// They are used to detect outdated files
|
315
|
-
// FastlaneRunnerAPIVersion [0.9.
|
315
|
+
// FastlaneRunnerAPIVersion [0.9.107]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// ScreengrabfileProtocol.swift
|
2
2
|
// Copyright (c) 2022 FastlaneTools
|
3
3
|
|
4
|
-
public protocol ScreengrabfileProtocol:
|
4
|
+
public protocol ScreengrabfileProtocol: AnyObject {
|
5
5
|
/// Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx
|
6
6
|
var androidHome: String? { get }
|
7
7
|
|
@@ -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.
|
99
|
+
// FastlaneRunnerAPIVersion [0.9.97]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SnapshotfileProtocol.swift
|
2
2
|
// Copyright (c) 2022 FastlaneTools
|
3
3
|
|
4
|
-
public protocol SnapshotfileProtocol:
|
4
|
+
public protocol SnapshotfileProtocol: AnyObject {
|
5
5
|
/// Path the workspace file
|
6
6
|
var workspace: String? { get }
|
7
7
|
|
@@ -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.91]
|
@@ -144,7 +144,11 @@ class SocketClient: NSObject {
|
|
144
144
|
|
145
145
|
private func sendThroughQueue(string: String) {
|
146
146
|
let data = string.data(using: .utf8)!
|
147
|
-
|
147
|
+
data.withUnsafeBytes { (buffer: UnsafeRawBufferPointer) in
|
148
|
+
if let buffer = buffer.baseAddress {
|
149
|
+
self.outputStream.write(buffer.assumingMemoryBound(to: UInt8.self), maxLength: data.count)
|
150
|
+
}
|
151
|
+
}
|
148
152
|
}
|
149
153
|
|
150
154
|
private func privateSend(string: String) {
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
import Foundation
|
12
12
|
|
13
|
-
protocol SocketClientDelegateProtocol:
|
13
|
+
protocol SocketClientDelegateProtocol: AnyObject {
|
14
14
|
func connectionsOpened()
|
15
15
|
func connectionsClosed()
|
16
16
|
func commandExecuted(serverResponse: SocketClientResponse, completion: (SocketClient) -> Void)
|