fastlane 2.157.1 → 2.159.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/deliver/lib/deliver/runner.rb +4 -2
  4. data/deliver/lib/deliver/upload_metadata.rb +5 -1
  5. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +12 -8
  6. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
  7. data/fastlane/lib/fastlane/actions/download_dsyms.rb +89 -68
  8. data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -1
  9. data/fastlane/lib/fastlane/helper/git_helper.rb +2 -0
  10. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +6 -4
  11. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  12. data/fastlane/lib/fastlane/version.rb +1 -1
  13. data/fastlane/swift/Actions.swift +2 -1
  14. data/fastlane/swift/Appfile.swift +2 -4
  15. data/fastlane/swift/ArgumentProcessor.swift +2 -6
  16. data/fastlane/swift/ControlCommand.swift +2 -5
  17. data/fastlane/swift/Deliverfile.swift +5 -2
  18. data/fastlane/swift/DeliverfileProtocol.swift +6 -3
  19. data/fastlane/swift/Fastfile.swift +5 -1
  20. data/fastlane/swift/Fastlane.swift +2227 -2218
  21. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +5 -5
  22. data/fastlane/swift/Gymfile.swift +5 -2
  23. data/fastlane/swift/GymfileProtocol.swift +6 -3
  24. data/fastlane/swift/LaneFileProtocol.swift +36 -19
  25. data/fastlane/swift/MainProcess.swift +77 -0
  26. data/fastlane/swift/Matchfile.swift +5 -2
  27. data/fastlane/swift/MatchfileProtocol.swift +6 -3
  28. data/fastlane/swift/Plugins.swift +2 -1
  29. data/fastlane/swift/Precheckfile.swift +5 -2
  30. data/fastlane/swift/PrecheckfileProtocol.swift +10 -3
  31. data/fastlane/swift/RubyCommand.swift +2 -6
  32. data/fastlane/swift/RubyCommandable.swift +2 -6
  33. data/fastlane/swift/Runner.swift +5 -9
  34. data/fastlane/swift/RunnerArgument.swift +2 -6
  35. data/fastlane/swift/Scanfile.swift +5 -2
  36. data/fastlane/swift/ScanfileProtocol.swift +6 -3
  37. data/fastlane/swift/Screengrabfile.swift +5 -2
  38. data/fastlane/swift/ScreengrabfileProtocol.swift +6 -3
  39. data/fastlane/swift/Snapshotfile.swift +5 -2
  40. data/fastlane/swift/SnapshotfileProtocol.swift +6 -3
  41. data/fastlane/swift/SocketClient.swift +3 -7
  42. data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -6
  43. data/fastlane/swift/SocketResponse.swift +2 -6
  44. data/fastlane/swift/formatting/Brewfile.lock.json +18 -10
  45. data/fastlane/swift/main.swift +4 -8
  46. data/fastlane/swift/upgrade_manifest.json +1 -1
  47. data/match/lib/match/importer.rb +5 -2
  48. data/match/lib/match/spaceship_ensure.rb +5 -5
  49. data/pilot/lib/pilot/build_manager.rb +0 -3
  50. data/pilot/lib/pilot/manager.rb +1 -2
  51. data/precheck/lib/precheck/options.rb +9 -0
  52. data/precheck/lib/precheck/rule_processor.rb +94 -60
  53. data/precheck/lib/precheck/runner.rb +6 -4
  54. data/produce/lib/produce/itunes_connect.rb +2 -1
  55. data/sigh/lib/assets/resign.sh +9 -6
  56. data/sigh/lib/sigh/runner.rb +2 -1
  57. data/snapshot/lib/assets/SnapshotHelper.swift +17 -2
  58. data/spaceship/lib/spaceship/client.rb +1 -0
  59. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  60. data/spaceship/lib/spaceship/connect_api/client.rb +37 -10
  61. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +2 -0
  62. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
  63. data/spaceship/lib/spaceship/connect_api/models/.app_store_version.rb.swp +0 -0
  64. data/spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp +0 -0
  65. data/spaceship/lib/spaceship/connect_api/models/app.rb +5 -5
  66. data/spaceship/lib/spaceship/connect_api/models/app_price_point.rb +26 -0
  67. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +7 -1
  68. data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +21 -0
  69. data/spaceship/lib/spaceship/connect_api/spaceship.rb +3 -2
  70. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +50 -50
  71. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +20 -0
  72. 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.157.1
20
+ // Generated with fastlane 2.159.0
@@ -1,4 +1,7 @@
1
- protocol GymfileProtocol: class {
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.39]
187
+ // FastlaneRunnerAPIVersion [0.9.45]
@@ -1,9 +1,5 @@
1
- //
2
- // LaneFileProtocol.swift
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
- public class LaneFile: NSObject, LaneFileProtocol {
37
- private(set) static var fastfileInstance: Fastfile?
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
- let methodList = class_copyMethodList(self, &methodCount)
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
- loadFastfile()
98
-
99
- guard let fastfileInstance: Fastfile = self.fastfileInstance else {
100
- let message = "Unable to instantiate class named: \(className())"
101
- log(message: message)
102
- fatalError(message)
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.157.1
20
+ // Generated with fastlane 2.159.0
@@ -1,4 +1,7 @@
1
- protocol MatchfileProtocol: class {
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.33]
171
+ // FastlaneRunnerAPIVersion [0.9.39]
@@ -1,4 +1,5 @@
1
- // This class is automatically included in FastlaneRunner during build
1
+ // Plugins.swift
2
+ // Copyright (c) 2020 FastlaneTools
2
3
 
3
4
  // This autogenerated file will be overwritten or replaced when installing/updating plugins or running "fastlane generate_swift"
4
5
  //
@@ -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.157.1
20
+ // Generated with fastlane 2.159.0
@@ -1,4 +1,7 @@
1
- protocol PrecheckfileProtocol: class {
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.32]
43
+ // FastlaneRunnerAPIVersion [0.9.38]
@@ -1,9 +1,5 @@
1
- //
2
- // RubyCommand.swift
3
- // FastlaneSwiftRunner
4
- //
5
- // Created by Joshua Liebowitz on 8/4/17.
6
- //
1
+ // RubyCommand.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **
@@ -1,9 +1,5 @@
1
- //
2
- // RubyCommandable.swift
3
- // FastlaneRunner
4
- //
5
- // Created by Joshua Liebowitz on 1/4/18.
6
- //
1
+ // RubyCommandable.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **
@@ -1,9 +1,5 @@
1
- //
2
- // Runner.swift
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: DispatchGroup = 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
- private func waitWithPolling<T>(_ expression: @autoclosure @escaping () throws -> T, toEventually predicate: @escaping (T) -> Bool, timeout: Int, pollingInterval: DispatchTimeInterval = .milliseconds(4)) -> DispatchTimeoutResult {
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
@@ -1,9 +1,5 @@
1
- //
2
- // RunnerArgument.swift
3
- // FastlaneSwiftRunner
4
- //
5
- // Created by Joshua Liebowitz on 9/1/17.
6
- //
1
+ // RunnerArgument.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **