fastlane 2.157.1 → 2.159.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 +80 -80
- data/deliver/lib/deliver/runner.rb +4 -2
- data/deliver/lib/deliver/upload_metadata.rb +5 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +12 -8
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +89 -68
- data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -1
- data/fastlane/lib/fastlane/helper/git_helper.rb +2 -0
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +6 -4
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +2 -1
- data/fastlane/swift/Appfile.swift +2 -4
- data/fastlane/swift/ArgumentProcessor.swift +2 -6
- data/fastlane/swift/ControlCommand.swift +2 -5
- data/fastlane/swift/Deliverfile.swift +5 -2
- data/fastlane/swift/DeliverfileProtocol.swift +6 -3
- data/fastlane/swift/Fastfile.swift +5 -1
- data/fastlane/swift/Fastlane.swift +2227 -2218
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +5 -5
- data/fastlane/swift/Gymfile.swift +5 -2
- data/fastlane/swift/GymfileProtocol.swift +6 -3
- data/fastlane/swift/LaneFileProtocol.swift +36 -19
- data/fastlane/swift/MainProcess.swift +77 -0
- data/fastlane/swift/Matchfile.swift +5 -2
- data/fastlane/swift/MatchfileProtocol.swift +6 -3
- data/fastlane/swift/Plugins.swift +2 -1
- data/fastlane/swift/Precheckfile.swift +5 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +10 -3
- data/fastlane/swift/RubyCommand.swift +2 -6
- data/fastlane/swift/RubyCommandable.swift +2 -6
- data/fastlane/swift/Runner.swift +5 -9
- data/fastlane/swift/RunnerArgument.swift +2 -6
- data/fastlane/swift/Scanfile.swift +5 -2
- data/fastlane/swift/ScanfileProtocol.swift +6 -3
- data/fastlane/swift/Screengrabfile.swift +5 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +6 -3
- data/fastlane/swift/Snapshotfile.swift +5 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +6 -3
- data/fastlane/swift/SocketClient.swift +3 -7
- data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -6
- data/fastlane/swift/SocketResponse.swift +2 -6
- data/fastlane/swift/formatting/Brewfile.lock.json +18 -10
- data/fastlane/swift/main.swift +4 -8
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/match/lib/match/importer.rb +5 -2
- data/match/lib/match/spaceship_ensure.rb +5 -5
- data/pilot/lib/pilot/build_manager.rb +0 -3
- data/pilot/lib/pilot/manager.rb +1 -2
- data/precheck/lib/precheck/options.rb +9 -0
- data/precheck/lib/precheck/rule_processor.rb +94 -60
- data/precheck/lib/precheck/runner.rb +6 -4
- data/produce/lib/produce/itunes_connect.rb +2 -1
- data/sigh/lib/assets/resign.sh +9 -6
- data/sigh/lib/sigh/runner.rb +2 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +17 -2
- data/spaceship/lib/spaceship/client.rb +1 -0
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +37 -10
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.app_store_version.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +5 -5
- data/spaceship/lib/spaceship/connect_api/models/app_price_point.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +7 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +21 -0
- data/spaceship/lib/spaceship/connect_api/spaceship.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +50 -50
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +20 -0
- metadata +23 -18
@@ -9,6 +9,7 @@
|
|
9
9
|
/* Begin PBXBuildFile section */
|
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
|
+
1257253924B7992C00E04FA3 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1257253824B7992B00E04FA3 /* main.swift */; };
|
12
13
|
B302067B1F5E3E9000DE6EBD /* SnapshotfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */; };
|
13
14
|
B302067C1F5E3E9000DE6EBD /* GymfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */; };
|
14
15
|
B302067D1F5E3E9000DE6EBD /* MatchfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */; };
|
@@ -18,7 +19,6 @@
|
|
18
19
|
B30206811F5E3E9000DE6EBD /* DeliverfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B302067A1F5E3E9000DE6EBD /* DeliverfileProtocol.swift */; };
|
19
20
|
B3BA65A61F5A269100B34850 /* Fastlane.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA659D1F5A269100B34850 /* Fastlane.swift */; };
|
20
21
|
B3BA65A71F5A269100B34850 /* LaneFileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA659E1F5A269100B34850 /* LaneFileProtocol.swift */; };
|
21
|
-
B3BA65A81F5A269100B34850 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA659F1F5A269100B34850 /* main.swift */; };
|
22
22
|
B3BA65A91F5A269100B34850 /* RubyCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA65A01F5A269100B34850 /* RubyCommand.swift */; };
|
23
23
|
B3BA65AA1F5A269100B34850 /* Runner.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA65A11F5A269100B34850 /* Runner.swift */; };
|
24
24
|
B3BA65AB1F5A269100B34850 /* SocketClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BA65A21F5A269100B34850 /* SocketClient.swift */; };
|
@@ -42,6 +42,7 @@
|
|
42
42
|
/* Begin PBXFileReference section */
|
43
43
|
0311E386230AC1B20060BB5C /* Plugins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Plugins.swift; path = ../Plugins.swift; sourceTree = "<group>"; };
|
44
44
|
0311E38A230AC9490060BB5C /* Actions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Actions.swift; path = ../Actions.swift; sourceTree = "<group>"; };
|
45
|
+
1257253824B7992B00E04FA3 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = ../main.swift; sourceTree = "<group>"; };
|
45
46
|
B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotfileProtocol.swift; path = ../SnapshotfileProtocol.swift; sourceTree = "<group>"; };
|
46
47
|
B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GymfileProtocol.swift; path = ../GymfileProtocol.swift; sourceTree = "<group>"; };
|
47
48
|
B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MatchfileProtocol.swift; path = ../MatchfileProtocol.swift; sourceTree = "<group>"; };
|
@@ -55,7 +56,6 @@
|
|
55
56
|
B3144C0A200553DC00470AFE /* README.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
|
56
57
|
B3BA659D1F5A269100B34850 /* Fastlane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Fastlane.swift; path = ../Fastlane.swift; sourceTree = "<group>"; };
|
57
58
|
B3BA659E1F5A269100B34850 /* LaneFileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LaneFileProtocol.swift; path = ../LaneFileProtocol.swift; sourceTree = "<group>"; };
|
58
|
-
B3BA659F1F5A269100B34850 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = ../main.swift; sourceTree = "<group>"; };
|
59
59
|
B3BA65A01F5A269100B34850 /* RubyCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RubyCommand.swift; path = ../RubyCommand.swift; sourceTree = "<group>"; };
|
60
60
|
B3BA65A11F5A269100B34850 /* Runner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Runner.swift; path = ../Runner.swift; sourceTree = "<group>"; };
|
61
61
|
B3BA65A21F5A269100B34850 /* SocketClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketClient.swift; path = ../SocketClient.swift; sourceTree = "<group>"; };
|
@@ -161,9 +161,9 @@
|
|
161
161
|
D512BA011F7C7F40000D2137 /* Runner Code */ = {
|
162
162
|
isa = PBXGroup;
|
163
163
|
children = (
|
164
|
+
1257253824B7992B00E04FA3 /* main.swift */,
|
164
165
|
B3144C0A200553DC00470AFE /* README.txt */,
|
165
166
|
D5BAFD111F7DAAFC0030B324 /* ArgumentProcessor.swift */,
|
166
|
-
B3BA659F1F5A269100B34850 /* main.swift */,
|
167
167
|
B3BA65AE1F5A2D5C00B34850 /* RunnerArgument.swift */,
|
168
168
|
);
|
169
169
|
name = "Runner Code";
|
@@ -236,7 +236,7 @@
|
|
236
236
|
);
|
237
237
|
runOnlyForDeploymentPostprocessing = 0;
|
238
238
|
shellPath = /bin/sh;
|
239
|
-
shellScript = "cd \"${SRCROOT}\"\ncd ../..\ncp \"${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}\"
|
239
|
+
shellScript = "cd \"${SRCROOT}\"\ncd ../..\ncp \"${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}\" .\n";
|
240
240
|
};
|
241
241
|
/* End PBXShellScriptBuildPhase section */
|
242
242
|
|
@@ -267,9 +267,9 @@
|
|
267
267
|
B3BA65AA1F5A269100B34850 /* Runner.swift in Sources */,
|
268
268
|
B3BA65AF1F5A2D5C00B34850 /* RunnerArgument.swift in Sources */,
|
269
269
|
D5B8A5B31FFDC49E00536B24 /* ControlCommand.swift in Sources */,
|
270
|
+
1257253924B7992C00E04FA3 /* main.swift in Sources */,
|
270
271
|
B302067E1F5E3E9000DE6EBD /* PrecheckfileProtocol.swift in Sources */,
|
271
272
|
B3BA65AD1F5A269100B34850 /* SocketResponse.swift in Sources */,
|
272
|
-
B3BA65A81F5A269100B34850 /* main.swift in Sources */,
|
273
273
|
D55B28C71F6C588300DC42C5 /* Scanfile.swift in Sources */,
|
274
274
|
0311E387230AC1B20060BB5C /* Plugins.swift in Sources */,
|
275
275
|
D55B28C91F6C588300DC42C5 /* Snapshotfile.swift in Sources */,
|
@@ -1,3 +1,6 @@
|
|
1
|
+
// Gymfile.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
1
4
|
// This class is automatically included in FastlaneRunner during build
|
2
5
|
|
3
6
|
// This autogenerated file will be overwritten or replaced during build time, or when you initialize `gym`
|
@@ -8,10 +11,10 @@
|
|
8
11
|
// new group so that it won't be marked for upgrade
|
9
12
|
//
|
10
13
|
|
11
|
-
class Gymfile: GymfileProtocol {
|
14
|
+
public class Gymfile: GymfileProtocol {
|
12
15
|
// If you want to enable `gym`, run `fastlane gym init`
|
13
16
|
// After, this file will be replaced with a custom implementation that contains values you supplied
|
14
17
|
// during the `init` process, and you won't see this message
|
15
18
|
}
|
16
19
|
|
17
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.159.0
|
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
// GymfileProtocol.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
4
|
+
public protocol GymfileProtocol: class {
|
2
5
|
/// Path to the workspace file
|
3
6
|
var workspace: String? { get }
|
4
7
|
|
@@ -132,7 +135,7 @@ protocol GymfileProtocol: class {
|
|
132
135
|
var clonedSourcePackagesPath: String? { get }
|
133
136
|
}
|
134
137
|
|
135
|
-
extension GymfileProtocol {
|
138
|
+
public extension GymfileProtocol {
|
136
139
|
var workspace: String? { return nil }
|
137
140
|
var project: String? { return nil }
|
138
141
|
var scheme: String? { return nil }
|
@@ -181,4 +184,4 @@ extension GymfileProtocol {
|
|
181
184
|
|
182
185
|
// Please don't remove the lines below
|
183
186
|
// They are used to detect outdated files
|
184
|
-
// FastlaneRunnerAPIVersion [0.9.
|
187
|
+
// FastlaneRunnerAPIVersion [0.9.45]
|
@@ -1,9 +1,5 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// FastlaneSwiftRunner
|
4
|
-
//
|
5
|
-
// Created by Joshua Liebowitz on 8/4/17.
|
6
|
-
//
|
1
|
+
// LaneFileProtocol.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
7
3
|
|
8
4
|
//
|
9
5
|
// ** NOTE **
|
@@ -16,7 +12,7 @@ import Foundation
|
|
16
12
|
|
17
13
|
public protocol LaneFileProtocol: class {
|
18
14
|
var fastlaneVersion: String { get }
|
19
|
-
static func runLane(named: String, parameters: [String: String]) -> Bool
|
15
|
+
static func runLane(from fastfile: LaneFile?, named: String, parameters: [String: String]) -> Bool
|
20
16
|
|
21
17
|
func recordLaneDescriptions()
|
22
18
|
func beforeAll()
|
@@ -33,8 +29,8 @@ public extension LaneFileProtocol {
|
|
33
29
|
}
|
34
30
|
|
35
31
|
@objcMembers
|
36
|
-
|
37
|
-
private(set) static var fastfileInstance:
|
32
|
+
open class LaneFile: NSObject, LaneFileProtocol {
|
33
|
+
private(set) static var fastfileInstance: LaneFile?
|
38
34
|
|
39
35
|
// Called before any lane is executed.
|
40
36
|
private func setupAllTheThings() {
|
@@ -52,7 +48,14 @@ public class LaneFile: NSObject, LaneFileProtocol {
|
|
52
48
|
private static var laneFunctionNames: [String] {
|
53
49
|
var lanes: [String] = []
|
54
50
|
var methodCount: UInt32 = 0
|
55
|
-
|
51
|
+
#if !SWIFT_PACKAGE
|
52
|
+
let methodList = class_copyMethodList(self, &methodCount)
|
53
|
+
#else
|
54
|
+
// In SPM we're calling this functions out of the scope of the normal binary that it
|
55
|
+
// is being built, so self in this scope would be the SPM executable instead of the Fastfile
|
56
|
+
// that we'd normally expect.
|
57
|
+
let methodList = class_copyMethodList(type(of: fastfileInstance!), &methodCount)
|
58
|
+
#endif
|
56
59
|
for i in 0 ..< Int(methodCount) {
|
57
60
|
let selName = sel_getName(method_getName(methodList![i]))
|
58
61
|
let name = String(cString: selName)
|
@@ -92,16 +95,30 @@ public class LaneFile: NSObject, LaneFileProtocol {
|
|
92
95
|
}
|
93
96
|
}
|
94
97
|
|
95
|
-
public static func runLane(named: String, parameters: [String: String]) -> Bool {
|
98
|
+
public static func runLane(from fastfile: LaneFile?, named: String, parameters: [String: String]) -> Bool {
|
96
99
|
log(message: "Running lane: \(named)")
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
100
|
+
#if !SWIFT_PACKAGE
|
101
|
+
// In SPM we do not load the Fastfile class from its `className()`, because we're in another
|
102
|
+
// in the executable's scope that loads the library, so in that case `className()` won't be the
|
103
|
+
// expected Fastfile and so, we do not dynamically load it as we do without SPM.
|
104
|
+
loadFastfile()
|
105
|
+
#endif
|
106
|
+
|
107
|
+
#if !SWIFT_PACKAGE
|
108
|
+
guard let fastfileInstance: LaneFile = self.fastfileInstance else {
|
109
|
+
let message = "Unable to instantiate class named: \(className())"
|
110
|
+
log(message: message)
|
111
|
+
fatalError(message)
|
112
|
+
}
|
113
|
+
#else
|
114
|
+
// We load the fastfile as a Lanefile in a static way, by parameter, because the Fastlane library
|
115
|
+
// cannot know nothing about the caller (in this case, the executable).
|
116
|
+
guard let fastfileInstance: LaneFile = fastfile else {
|
117
|
+
log(message: "Found nil instance of fastfile")
|
118
|
+
preconditionFailure()
|
119
|
+
}
|
120
|
+
#endif
|
121
|
+
self.fastfileInstance = fastfile!
|
105
122
|
let currentLanes = lanes
|
106
123
|
let lowerCasedLaneRequested = named.lowercased()
|
107
124
|
|
@@ -0,0 +1,77 @@
|
|
1
|
+
// MainProcess.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
4
|
+
//
|
5
|
+
// ** NOTE **
|
6
|
+
// This file is provided by fastlane and WILL be overwritten in future updates
|
7
|
+
// If you want to add extra functionality to this project, create a new file in a
|
8
|
+
// new group so that it won't be marked for upgrade
|
9
|
+
//
|
10
|
+
|
11
|
+
import Foundation
|
12
|
+
#if canImport(SwiftShell)
|
13
|
+
import SwiftShell
|
14
|
+
#endif
|
15
|
+
|
16
|
+
let argumentProcessor = ArgumentProcessor(args: CommandLine.arguments)
|
17
|
+
let timeout = argumentProcessor.commandTimeout
|
18
|
+
|
19
|
+
class MainProcess {
|
20
|
+
var doneRunningLane = false
|
21
|
+
var thread: Thread!
|
22
|
+
#if SWIFT_PACKAGE
|
23
|
+
var lastPrintDate = Date.distantFuture
|
24
|
+
var timeBetweenPrints = Int.min
|
25
|
+
var rubySocketCommand: AsyncCommand!
|
26
|
+
#endif
|
27
|
+
|
28
|
+
@objc func connectToFastlaneAndRunLane(_ fastfile: LaneFile?) {
|
29
|
+
runner.startSocketThread(port: argumentProcessor.port)
|
30
|
+
|
31
|
+
let completedRun = Fastfile.runLane(from: fastfile, named: argumentProcessor.currentLane, parameters: argumentProcessor.laneParameters())
|
32
|
+
if completedRun {
|
33
|
+
runner.disconnectFromFastlaneProcess()
|
34
|
+
}
|
35
|
+
|
36
|
+
doneRunningLane = true
|
37
|
+
}
|
38
|
+
|
39
|
+
func startFastlaneThread(with fastFile: LaneFile?) {
|
40
|
+
#if !SWIFT_PACKAGE
|
41
|
+
thread = Thread(target: self, selector: #selector(connectToFastlaneAndRunLane), object: nil)
|
42
|
+
#else
|
43
|
+
thread = Thread(target: self, selector: #selector(connectToFastlaneAndRunLane), object: fastFile)
|
44
|
+
#endif
|
45
|
+
thread.name = "worker thread"
|
46
|
+
#if SWIFT_PACKAGE
|
47
|
+
let PATH = run("/bin/bash", "-c", "-l", "eval $(/usr/libexec/path_helper -s) ; echo $PATH").stdout
|
48
|
+
main.env["PATH"] = PATH
|
49
|
+
let path = main.run(bash: "which fastlane").stdout
|
50
|
+
let pids = main.run("lsof", "-t", "-i", ":2000").stdout.split(separator: "\n")
|
51
|
+
pids.forEach { main.run("kill", "-9", $0) }
|
52
|
+
rubySocketCommand = main.runAsync(path, "socket_server", "-c", "1200")
|
53
|
+
lastPrintDate = Date()
|
54
|
+
rubySocketCommand.stderror.onStringOutput { print($0) }
|
55
|
+
rubySocketCommand.stdout.onStringOutput { stdout in
|
56
|
+
print(stdout)
|
57
|
+
self.timeBetweenPrints = Int(self.lastPrintDate.timeIntervalSinceNow)
|
58
|
+
}
|
59
|
+
_ = Runner.waitWithPolling(self.timeBetweenPrints, toEventually: { $0 > 5 }, timeout: 10)
|
60
|
+
thread.start()
|
61
|
+
#endif
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
public class Main {
|
66
|
+
let process = MainProcess()
|
67
|
+
|
68
|
+
public init() {}
|
69
|
+
|
70
|
+
public func run(with fastFile: LaneFile?) {
|
71
|
+
process.startFastlaneThread(with: fastFile)
|
72
|
+
|
73
|
+
while !process.doneRunningLane, RunLoop.current.run(mode: RunLoopMode.defaultRunLoopMode, before: Date(timeIntervalSinceNow: 2)) {
|
74
|
+
// no op
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
@@ -1,3 +1,6 @@
|
|
1
|
+
// Matchfile.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
1
4
|
// This class is automatically included in FastlaneRunner during build
|
2
5
|
|
3
6
|
// This autogenerated file will be overwritten or replaced during build time, or when you initialize `match`
|
@@ -8,10 +11,10 @@
|
|
8
11
|
// new group so that it won't be marked for upgrade
|
9
12
|
//
|
10
13
|
|
11
|
-
class Matchfile: MatchfileProtocol {
|
14
|
+
public class Matchfile: MatchfileProtocol {
|
12
15
|
// If you want to enable `match`, run `fastlane match init`
|
13
16
|
// After, this file will be replaced with a custom implementation that contains values you supplied
|
14
17
|
// during the `init` process, and you won't see this message
|
15
18
|
}
|
16
19
|
|
17
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.159.0
|
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
// MatchfileProtocol.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
4
|
+
public protocol MatchfileProtocol: class {
|
2
5
|
/// Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
|
3
6
|
var type: String { get }
|
4
7
|
|
@@ -120,7 +123,7 @@ protocol MatchfileProtocol: class {
|
|
120
123
|
var verbose: Bool { get }
|
121
124
|
}
|
122
125
|
|
123
|
-
extension MatchfileProtocol {
|
126
|
+
public extension MatchfileProtocol {
|
124
127
|
var type: String { return "development" }
|
125
128
|
var additionalCertTypes: [String]? { return nil }
|
126
129
|
var readonly: Bool { return false }
|
@@ -165,4 +168,4 @@ extension MatchfileProtocol {
|
|
165
168
|
|
166
169
|
// Please don't remove the lines below
|
167
170
|
// They are used to detect outdated files
|
168
|
-
// FastlaneRunnerAPIVersion [0.9.
|
171
|
+
// FastlaneRunnerAPIVersion [0.9.39]
|
@@ -1,3 +1,6 @@
|
|
1
|
+
// Precheckfile.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
1
4
|
// This class is automatically included in FastlaneRunner during build
|
2
5
|
|
3
6
|
// This autogenerated file will be overwritten or replaced during build time, or when you initialize `precheck`
|
@@ -8,10 +11,10 @@
|
|
8
11
|
// new group so that it won't be marked for upgrade
|
9
12
|
//
|
10
13
|
|
11
|
-
class Precheckfile: PrecheckfileProtocol {
|
14
|
+
public class Precheckfile: PrecheckfileProtocol {
|
12
15
|
// If you want to enable `precheck`, run `fastlane precheck init`
|
13
16
|
// After, this file will be replaced with a custom implementation that contains values you supplied
|
14
17
|
// during the `init` process, and you won't see this message
|
15
18
|
}
|
16
19
|
|
17
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.159.0
|
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
// PrecheckfileProtocol.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
3
|
+
|
4
|
+
public protocol PrecheckfileProtocol: class {
|
2
5
|
/// The bundle identifier of your app
|
3
6
|
var appIdentifier: String { get }
|
4
7
|
|
@@ -11,6 +14,9 @@ protocol PrecheckfileProtocol: class {
|
|
11
14
|
/// The name of your App Store Connect team if you're in multiple teams
|
12
15
|
var teamName: String? { get }
|
13
16
|
|
17
|
+
/// The platform to use (optional)
|
18
|
+
var platform: String { get }
|
19
|
+
|
14
20
|
/// The default rule level unless otherwise configured
|
15
21
|
var defaultRuleLevel: String { get }
|
16
22
|
|
@@ -21,11 +27,12 @@ protocol PrecheckfileProtocol: class {
|
|
21
27
|
var freeStuffInIap: String? { get }
|
22
28
|
}
|
23
29
|
|
24
|
-
extension PrecheckfileProtocol {
|
30
|
+
public extension PrecheckfileProtocol {
|
25
31
|
var appIdentifier: String { return "" }
|
26
32
|
var username: String { return "" }
|
27
33
|
var teamId: String? { return nil }
|
28
34
|
var teamName: String? { return nil }
|
35
|
+
var platform: String { return "ios" }
|
29
36
|
var defaultRuleLevel: String { return "error" }
|
30
37
|
var includeInAppPurchases: Bool { return true }
|
31
38
|
var freeStuffInIap: String? { return nil }
|
@@ -33,4 +40,4 @@ extension PrecheckfileProtocol {
|
|
33
40
|
|
34
41
|
// Please don't remove the lines below
|
35
42
|
// They are used to detect outdated files
|
36
|
-
// FastlaneRunnerAPIVersion [0.9.
|
43
|
+
// FastlaneRunnerAPIVersion [0.9.38]
|
data/fastlane/swift/Runner.swift
CHANGED
@@ -1,9 +1,5 @@
|
|
1
|
-
//
|
2
|
-
//
|
3
|
-
// FastlaneSwiftRunner
|
4
|
-
//
|
5
|
-
// Created by Joshua Liebowitz on 8/26/17.
|
6
|
-
//
|
1
|
+
// Runner.swift
|
2
|
+
// Copyright (c) 2020 FastlaneTools
|
7
3
|
|
8
4
|
//
|
9
5
|
// ** NOTE **
|
@@ -29,7 +25,7 @@ func desc(_: String) {
|
|
29
25
|
class Runner {
|
30
26
|
private var thread: Thread!
|
31
27
|
private var socketClient: SocketClient!
|
32
|
-
private let dispatchGroup
|
28
|
+
private let dispatchGroup = DispatchGroup()
|
33
29
|
private var returnValue: String? // lol, so safe
|
34
30
|
private var currentlyExecutingCommand: RubyCommandable?
|
35
31
|
private var shouldLeaveDispatchGroupDuringDisconnect = false
|
@@ -42,7 +38,7 @@ class Runner {
|
|
42
38
|
|
43
39
|
let secondsToWait = DispatchTimeInterval.seconds(SocketClient.defaultCommandTimeoutSeconds)
|
44
40
|
// swiftlint:disable next
|
45
|
-
let timeoutResult = waitWithPolling(self.executeNext[command.id], toEventually: { $0 == true }, timeout: SocketClient.defaultCommandTimeoutSeconds)
|
41
|
+
let timeoutResult = Self.waitWithPolling(self.executeNext[command.id], toEventually: { $0 == true }, timeout: SocketClient.defaultCommandTimeoutSeconds)
|
46
42
|
executeNext.removeValue(forKey: command.id)
|
47
43
|
let failureMessage = "command didn't execute in: \(SocketClient.defaultCommandTimeoutSeconds) seconds"
|
48
44
|
let success = testDispatchTimeoutResult(timeoutResult, failureMessage: failureMessage, timeToWait: secondsToWait)
|
@@ -58,7 +54,7 @@ class Runner {
|
|
58
54
|
}
|
59
55
|
}
|
60
56
|
|
61
|
-
|
57
|
+
static func waitWithPolling<T>(_ expression: @autoclosure @escaping () throws -> T, toEventually predicate: @escaping (T) -> Bool, timeout: Int, pollingInterval: DispatchTimeInterval = .milliseconds(4)) -> DispatchTimeoutResult {
|
62
58
|
func memoizedClosure<T>(_ closure: @escaping () throws -> T) -> (Bool) throws -> T {
|
63
59
|
var cache: T?
|
64
60
|
return { withoutCaching in
|