fastlane 2.157.4 → 2.162.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 (110) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/cert/lib/cert/options.rb +28 -1
  4. data/cert/lib/cert/runner.rb +50 -33
  5. data/deliver/lib/deliver/app_screenshot_iterator.rb +4 -4
  6. data/deliver/lib/deliver/options.rb +17 -1
  7. data/deliver/lib/deliver/runner.rb +36 -7
  8. data/deliver/lib/deliver/upload_metadata.rb +37 -6
  9. data/deliver/lib/deliver/upload_price_tier.rb +7 -2
  10. data/deliver/lib/deliver/upload_screenshots.rb +25 -8
  11. data/{pilot/lib/pilot/.manager.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
  12. data/fastlane/lib/fastlane/actions/{.ensure_git_status_clean.rb.swp → .git_commit.rb.swp} +0 -0
  13. data/fastlane/lib/fastlane/actions/actions_helper.rb +20 -1
  14. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +6 -1
  15. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +1 -0
  16. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
  17. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
  18. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +1 -1
  19. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -2
  20. data/fastlane/lib/fastlane/actions/docs/run_tests.md +2 -2
  21. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +3 -3
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -2
  23. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +2 -2
  24. data/fastlane/lib/fastlane/actions/download_dsyms.rb +32 -7
  25. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +13 -2
  26. data/fastlane/lib/fastlane/helper/git_helper.rb +2 -0
  27. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +6 -4
  28. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  29. data/fastlane/lib/fastlane/version.rb +1 -1
  30. data/fastlane/swift/Actions.swift +2 -1
  31. data/fastlane/swift/Appfile.swift +2 -4
  32. data/fastlane/swift/ArgumentProcessor.swift +2 -6
  33. data/fastlane/swift/ControlCommand.swift +2 -5
  34. data/fastlane/swift/Deliverfile.swift +5 -2
  35. data/fastlane/swift/DeliverfileProtocol.swift +15 -4
  36. data/fastlane/swift/Fastfile.swift +5 -1
  37. data/fastlane/swift/Fastlane.swift +2333 -2240
  38. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +5 -5
  39. data/fastlane/swift/Gymfile.swift +5 -2
  40. data/fastlane/swift/GymfileProtocol.swift +6 -3
  41. data/fastlane/swift/LaneFileProtocol.swift +42 -29
  42. data/fastlane/swift/MainProcess.swift +77 -0
  43. data/fastlane/swift/Matchfile.swift +5 -2
  44. data/fastlane/swift/MatchfileProtocol.swift +21 -6
  45. data/fastlane/swift/Plugins.swift +2 -1
  46. data/fastlane/swift/Precheckfile.swift +5 -2
  47. data/fastlane/swift/PrecheckfileProtocol.swift +18 -3
  48. data/fastlane/swift/RubyCommand.swift +2 -6
  49. data/fastlane/swift/RubyCommandable.swift +2 -6
  50. data/fastlane/swift/Runner.swift +5 -9
  51. data/fastlane/swift/RunnerArgument.swift +2 -6
  52. data/fastlane/swift/Scanfile.swift +5 -2
  53. data/fastlane/swift/ScanfileProtocol.swift +6 -3
  54. data/fastlane/swift/Screengrabfile.swift +5 -2
  55. data/fastlane/swift/ScreengrabfileProtocol.swift +6 -3
  56. data/fastlane/swift/Snapshotfile.swift +5 -2
  57. data/fastlane/swift/SnapshotfileProtocol.swift +6 -3
  58. data/fastlane/swift/SocketClient.swift +3 -7
  59. data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -6
  60. data/fastlane/swift/SocketResponse.swift +2 -6
  61. data/fastlane/swift/formatting/Brewfile.lock.json +18 -10
  62. data/fastlane/swift/main.swift +4 -8
  63. data/fastlane/swift/upgrade_manifest.json +1 -1
  64. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +6 -7
  65. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -2
  66. data/frameit/lib/frameit/editor.rb +1 -0
  67. data/match/lib/match/generator.rb +6 -1
  68. data/match/lib/match/importer.rb +44 -8
  69. data/match/lib/match/migrate.rb +13 -2
  70. data/match/lib/match/nuke.rb +65 -22
  71. data/match/lib/match/options.rb +27 -2
  72. data/match/lib/match/runner.rb +38 -10
  73. data/match/lib/match/spaceship_ensure.rb +27 -21
  74. data/match/lib/match/storage/google_cloud_storage.rb +20 -3
  75. data/match/lib/match/storage/s3_storage.rb +19 -3
  76. data/pilot/lib/pilot/options.rb +2 -2
  77. data/precheck/lib/precheck/options.rb +25 -0
  78. data/precheck/lib/precheck/rule_processor.rb +94 -60
  79. data/precheck/lib/precheck/runner.rb +26 -5
  80. data/sigh/lib/sigh/options.rb +21 -0
  81. data/sigh/lib/sigh/runner.rb +80 -38
  82. data/snapshot/lib/assets/SnapshotHelper.swift +17 -2
  83. data/spaceship/README.md +1 -1
  84. data/spaceship/lib/spaceship/{connect_api/.DS_Store → .DS_Store} +0 -0
  85. data/spaceship/lib/spaceship/client.rb +2 -1
  86. data/spaceship/lib/spaceship/connect_api.rb +1 -0
  87. data/spaceship/lib/spaceship/connect_api/api_client.rb +3 -3
  88. data/spaceship/lib/spaceship/connect_api/client.rb +38 -15
  89. data/{fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp → spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp} +0 -0
  90. data/spaceship/lib/spaceship/connect_api/models/app.rb +17 -9
  91. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
  92. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +3 -1
  93. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -2
  94. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +3 -5
  95. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +3 -5
  96. data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +21 -0
  97. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +2 -1
  98. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +42 -0
  99. data/spaceship/lib/spaceship/connect_api/models/profile.rb +7 -1
  100. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +59 -0
  101. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +28 -2
  102. data/spaceship/lib/spaceship/connect_api/spaceship.rb +3 -2
  103. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  104. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +29 -9
  105. data/spaceship/lib/spaceship/connect_api/users/users.rb +40 -0
  106. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +11 -5
  107. metadata +24 -25
  108. data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
  109. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  110. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
@@ -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 **
@@ -1,3 +1,6 @@
1
+ // Scanfile.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 `scan`
@@ -8,10 +11,10 @@
8
11
  // new group so that it won't be marked for upgrade
9
12
  //
10
13
 
11
- class Scanfile: ScanfileProtocol {
14
+ public class Scanfile: ScanfileProtocol {
12
15
  // If you want to enable `scan`, run `fastlane scan 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.4
20
+ // Generated with fastlane 2.162.0
@@ -1,4 +1,7 @@
1
- protocol ScanfileProtocol: class {
1
+ // ScanfileProtocol.swift
2
+ // Copyright (c) 2020 FastlaneTools
3
+
4
+ public protocol ScanfileProtocol: class {
2
5
  /// Path to the workspace file
3
6
  var workspace: String? { get }
4
7
 
@@ -189,7 +192,7 @@ protocol ScanfileProtocol: class {
189
192
  var failBuild: Bool { get }
190
193
  }
191
194
 
192
- extension ScanfileProtocol {
195
+ public extension ScanfileProtocol {
193
196
  var workspace: String? { return nil }
194
197
  var project: String? { return nil }
195
198
  var scheme: String? { return nil }
@@ -257,4 +260,4 @@ extension ScanfileProtocol {
257
260
 
258
261
  // Please don't remove the lines below
259
262
  // They are used to detect outdated files
260
- // FastlaneRunnerAPIVersion [0.9.47]
263
+ // FastlaneRunnerAPIVersion [0.9.53]
@@ -1,3 +1,6 @@
1
+ // Screengrabfile.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 `screengrab`
@@ -8,10 +11,10 @@
8
11
  // new group so that it won't be marked for upgrade
9
12
  //
10
13
 
11
- class Screengrabfile: ScreengrabfileProtocol {
14
+ public class Screengrabfile: ScreengrabfileProtocol {
12
15
  // If you want to enable `screengrab`, run `fastlane screengrab 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.4
20
+ // Generated with fastlane 2.162.0
@@ -1,4 +1,7 @@
1
- protocol ScreengrabfileProtocol: class {
1
+ // ScreengrabfileProtocol.swift
2
+ // Copyright (c) 2020 FastlaneTools
3
+
4
+ public protocol ScreengrabfileProtocol: class {
2
5
  /// Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx
3
6
  var androidHome: String? { get }
4
7
 
@@ -66,7 +69,7 @@ protocol ScreengrabfileProtocol: class {
66
69
  var adbHost: String? { get }
67
70
  }
68
71
 
69
- extension ScreengrabfileProtocol {
72
+ public extension ScreengrabfileProtocol {
70
73
  var androidHome: String? { return nil }
71
74
  var buildToolsVersion: String? { return nil }
72
75
  var locales: [String] { return ["en-US"] }
@@ -93,4 +96,4 @@ extension ScreengrabfileProtocol {
93
96
 
94
97
  // Please don't remove the lines below
95
98
  // They are used to detect outdated files
96
- // FastlaneRunnerAPIVersion [0.9.37]
99
+ // FastlaneRunnerAPIVersion [0.9.43]
@@ -1,3 +1,6 @@
1
+ // Snapshotfile.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 `snapshot`
@@ -8,10 +11,10 @@
8
11
  // new group so that it won't be marked for upgrade
9
12
  //
10
13
 
11
- class Snapshotfile: SnapshotfileProtocol {
14
+ public class Snapshotfile: SnapshotfileProtocol {
12
15
  // If you want to enable `snapshot`, run `fastlane snapshot 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.4
20
+ // Generated with fastlane 2.162.0
@@ -1,4 +1,7 @@
1
- protocol SnapshotfileProtocol: class {
1
+ // SnapshotfileProtocol.swift
2
+ // Copyright (c) 2020 FastlaneTools
3
+
4
+ public protocol SnapshotfileProtocol: class {
2
5
  /// Path the workspace file
3
6
  var workspace: String? { get }
4
7
 
@@ -132,7 +135,7 @@ protocol SnapshotfileProtocol: class {
132
135
  var suppressXcodeOutput: Bool? { get }
133
136
  }
134
137
 
135
- extension SnapshotfileProtocol {
138
+ public extension SnapshotfileProtocol {
136
139
  var workspace: String? { return nil }
137
140
  var project: String? { return nil }
138
141
  var xcargs: String? { return nil }
@@ -181,4 +184,4 @@ extension SnapshotfileProtocol {
181
184
 
182
185
  // Please don't remove the lines below
183
186
  // They are used to detect outdated files
184
- // FastlaneRunnerAPIVersion [0.9.31]
187
+ // FastlaneRunnerAPIVersion [0.9.37]
@@ -1,9 +1,5 @@
1
- //
2
- // SocketClient.swift
3
- // FastlaneSwiftRunner
4
- //
5
- // Created by Joshua Liebowitz on 7/30/17.
6
- //
1
+ // SocketClient.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **
@@ -40,7 +36,7 @@ class SocketClient: NSObject {
40
36
  fileprivate var inputStream: InputStream!
41
37
  fileprivate var outputStream: OutputStream!
42
38
  fileprivate var cleaningUpAfterDone = false
43
- fileprivate let dispatchGroup: DispatchGroup = DispatchGroup()
39
+ fileprivate let dispatchGroup = DispatchGroup()
44
40
  fileprivate let readSemaphore = DispatchSemaphore(value: 1)
45
41
  fileprivate let writeSemaphore = DispatchSemaphore(value: 1)
46
42
  fileprivate let commandTimeoutSeconds: Int
@@ -1,9 +1,5 @@
1
- //
2
- // SocketClientDelegateProtocol.swift
3
- // FastlaneSwiftRunner
4
- //
5
- // Created by Joshua Liebowitz on 8/12/17.
6
- //
1
+ // SocketClientDelegateProtocol.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **
@@ -1,9 +1,5 @@
1
- //
2
- // SocketResponse.swift
3
- // FastlaneSwiftRunner
4
- //
5
- // Created by Joshua Liebowitz on 7/30/17.
6
- //
1
+ // SocketResponse.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **
@@ -2,22 +2,22 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.44.8",
5
+ "version": "0.45.6",
6
6
  "bottle": {
7
7
  "cellar": ":any_skip_relocation",
8
8
  "prefix": "/usr/local",
9
9
  "files": {
10
10
  "catalina": {
11
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.8.catalina.bottle.tar.gz",
12
- "sha256": "9cbd2c21d4579c8c4ffc9df7b44593f7622d13f8517a3fed047c5e5f3f2560c6"
11
+ "url": "https://homebrew.bintray.com/bottles/swiftformat-0.45.6.catalina.bottle.tar.gz",
12
+ "sha256": "7f23ff740679b30e313c91533c2f3e6fa4210bb68f8e383c29e7f922f87d8f66"
13
13
  },
14
14
  "mojave": {
15
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.8.mojave.bottle.tar.gz",
16
- "sha256": "a8f8b6fa977804c2d13f0cbc9ed223ddaa88e3c0684e91519e005784c8418b36"
15
+ "url": "https://homebrew.bintray.com/bottles/swiftformat-0.45.6.mojave.bottle.tar.gz",
16
+ "sha256": "b5349b775ff60c73c284d5de8ad2c0fdfb35428cff92bb7a8e5fcc6536750b89"
17
17
  },
18
18
  "high_sierra": {
19
- "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.8.high_sierra.bottle.tar.gz",
20
- "sha256": "fd43d192d194a8bb02308714b691e6a7101f839889f749dff4a1facf8172b951"
19
+ "url": "https://homebrew.bintray.com/bottles/swiftformat-0.45.6.high_sierra.bottle.tar.gz",
20
+ "sha256": "34d900217ca12736a112c31e54a5f4f7e64c1fe224f6e4ea76ad1d25b149f647"
21
21
  }
22
22
  }
23
23
  }
@@ -27,12 +27,20 @@
27
27
  "system": {
28
28
  "macos": {
29
29
  "catalina": {
30
- "HOMEBREW_VERSION": "2.2.14-62-g9befd55",
30
+ "HOMEBREW_VERSION": "2.4.9-133-g0fdf8f2",
31
31
  "HOMEBREW_PREFIX": "/usr/local",
32
- "Homebrew/homebrew-core": "0b738b77a5a13a66a52d76d34c4f608b719e0485",
32
+ "Homebrew/homebrew-core": "7141f37f3af0e6702f6dab2263852ddefbbbf8ed",
33
33
  "CLT": "11.0.28.3",
34
- "Xcode": "11.4.1",
34
+ "Xcode": "11.6",
35
35
  "macOS": "10.15.4"
36
+ },
37
+ "big_sur": {
38
+ "HOMEBREW_VERSION": "2.4.13-249-g6454504",
39
+ "HOMEBREW_PREFIX": "/usr/local",
40
+ "Homebrew/homebrew-core": "020491c34515c229d904e6e69e14157cb728d2fa",
41
+ "CLT": "11.0.28.3",
42
+ "Xcode": "12.0",
43
+ "macOS": "11.0"
36
44
  }
37
45
  }
38
46
  }
@@ -1,9 +1,5 @@
1
- //
2
- // main.swift
3
- // FastlaneSwiftRunner
4
- //
5
- // Created by Joshua Liebowitz on 8/26/17.
6
- //
1
+ // main.swift
2
+ // Copyright (c) 2020 FastlaneTools
7
3
 
8
4
  //
9
5
  // ** NOTE **
@@ -24,7 +20,7 @@ class MainProcess {
24
20
  @objc func connectToFastlaneAndRunLane() {
25
21
  runner.startSocketThread(port: argumentProcessor.port)
26
22
 
27
- let completedRun = Fastfile.runLane(named: argumentProcessor.currentLane, parameters: argumentProcessor.laneParameters())
23
+ let completedRun = Fastfile.runLane(from: nil, named: argumentProcessor.currentLane, parameters: argumentProcessor.laneParameters())
28
24
  if completedRun {
29
25
  runner.disconnectFromFastlaneProcess()
30
26
  }
@@ -39,7 +35,7 @@ class MainProcess {
39
35
  }
40
36
  }
41
37
 
42
- let process: MainProcess = MainProcess()
38
+ let process = MainProcess()
43
39
  process.startFastlaneThread()
44
40
 
45
41
  while !process.doneRunningLane, RunLoop.current.run(mode: RunLoopMode.defaultRunLoopMode, before: Date(timeIntervalSinceNow: 2)) {
@@ -1 +1 @@
1
- {"Actions.swift":"Autogenerated API","Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","Plugins.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","ArgumentProcessor.swift":"Runner Code","main.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}
1
+ {"Actions.swift":"Autogenerated API","Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","Plugins.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","main.swift":"Runner Code","ArgumentProcessor.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}
@@ -19,7 +19,7 @@ module FastlaneCore
19
19
  end
20
20
 
21
21
  def action_launched(launch_context: nil)
22
- unless did_show_message?
22
+ if should_show_message?
23
23
  show_message
24
24
  end
25
25
 
@@ -52,16 +52,15 @@ module FastlaneCore
52
52
  UI.message("You can disable this by adding `opt_out_usage` at the top of your Fastfile")
53
53
  end
54
54
 
55
- def did_show_message?
56
- file_name = ".did_show_opt_info"
55
+ def should_show_message?
56
+ return false if FastlaneCore::Env.truthy?("FASTLANE_OPT_OUT_USAGE")
57
57
 
58
+ file_name = ".did_show_opt_info"
58
59
  new_path = File.join(FastlaneCore.fastlane_user_dir, file_name)
59
- did_show = File.exist?(new_path)
60
-
61
- return did_show if did_show
60
+ return false if File.exist?(new_path)
62
61
 
63
62
  File.write(new_path, '1')
64
- false
63
+ true
65
64
  end
66
65
 
67
66
  def finalize_session
@@ -4,7 +4,7 @@ require 'security'
4
4
 
5
5
  module FastlaneCore
6
6
  class KeychainImporter
7
- def self.import_file(path, keychain_path, keychain_password: nil, certificate_password: "", output: FastlaneCore::Globals.verbose?)
7
+ def self.import_file(path, keychain_path, keychain_password: nil, certificate_password: "", skip_set_partition_list: false, output: FastlaneCore::Globals.verbose?)
8
8
  UI.user_error!("Could not find file '#{path}'") unless File.exist?(path)
9
9
 
10
10
  command = "security import #{path.shellescape} -k '#{keychain_path.shellescape}'"
@@ -19,7 +19,7 @@ module FastlaneCore
19
19
  UI.command_output(stdout.read.to_s) if output
20
20
 
21
21
  # Set partition list only if success since it can be a time consuming process if a lot of keys are installed
22
- if thrd.value.success?
22
+ if thrd.value.success? && !skip_set_partition_list
23
23
  keychain_password ||= resolve_keychain_password(keychain_path)
24
24
  set_partition_list(path, keychain_path, keychain_password: keychain_password, output: output)
25
25
  else
@@ -429,6 +429,7 @@ module Frameit
429
429
  # Add the actual title
430
430
  text_image.combine_options do |i|
431
431
  i.font(current_font) if current_font
432
+ i.weight(@config[key.to_s]['font_weight']) if @config[key.to_s]['font_weight']
432
433
  i.gravity("Center")
433
434
  i.pointsize(actual_font_size(key))
434
435
  i.draw("text 0,0 '#{text}'")
@@ -26,11 +26,14 @@ module Match
26
26
  generate_apple_certs: params[:generate_apple_certs],
27
27
  output_path: output_path,
28
28
  force: true, # we don't need a certificate without its private key, we only care about a new certificate
29
+ api_key_path: params[:api_key_path],
30
+ api_key: params[:api_key],
29
31
  username: params[:username],
30
32
  team_id: params[:team_id],
31
33
  team_name: params[:team_name],
32
34
  keychain_path: FastlaneCore::Helper.keychain_path(params[:keychain_name]),
33
- keychain_password: params[:keychain_password]
35
+ keychain_password: params[:keychain_password],
36
+ skip_set_partition_list: params[:skip_set_partition_list]
34
37
  })
35
38
 
36
39
  Cert.config = arguments
@@ -80,6 +83,8 @@ module Match
80
83
  cert_id: certificate_id,
81
84
  provisioning_name: profile_name,
82
85
  ignore_profiles_with_different_name: true,
86
+ api_key_path: params[:api_key_path],
87
+ api_key: params[:api_key],
83
88
  team_id: params[:team_id],
84
89
  team_name: params[:team_name],
85
90
  template_name: params[:template_name],
@@ -2,6 +2,7 @@ require_relative 'spaceship_ensure'
2
2
  require_relative 'encryption'
3
3
  require_relative 'storage'
4
4
  require_relative 'module'
5
+ require_relative 'generator'
5
6
  require 'fastlane_core/provisioning_profile'
6
7
  require 'fileutils'
7
8
 
@@ -27,10 +28,17 @@ module Match
27
28
  google_cloud_bucket_name: params[:google_cloud_bucket_name].to_s,
28
29
  google_cloud_keys_file: params[:google_cloud_keys_file].to_s,
29
30
  google_cloud_project_id: params[:google_cloud_project_id].to_s,
31
+ s3_bucket: params[:s3_bucket],
32
+ s3_region: params[:s3_region],
33
+ s3_access_key: params[:s3_access_key],
34
+ s3_secret_access_key: params[:s3_secret_access_key],
35
+ s3_object_prefix: params[:s3_object_prefix],
30
36
  readonly: params[:readonly],
31
37
  username: params[:username],
32
38
  team_id: params[:team_id],
33
- team_name: params[:team_name]
39
+ team_name: params[:team_name],
40
+ api_key_path: params[:api_key_path],
41
+ api_key: params[:api_key]
34
42
  })
35
43
  storage.download
36
44
 
@@ -47,21 +55,42 @@ module Match
47
55
 
48
56
  case cert_type
49
57
  when :development
50
- certificate_type = Spaceship::ConnectAPI::Certificate::CertificateType::IOS_DEVELOPMENT + "," + Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPMENT
58
+ certificate_type = [
59
+ Spaceship::ConnectAPI::Certificate::CertificateType::IOS_DEVELOPMENT,
60
+ Spaceship::ConnectAPI::Certificate::CertificateType::MAC_APP_DEVELOPMENT,
61
+ Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPMENT
62
+ ].join(',')
51
63
  when :distribution, :enterprise
52
- certificate_type = Spaceship::ConnectAPI::Certificate::CertificateType::IOS_DISTRIBUTION + "," + Spaceship::ConnectAPI::Certificate::CertificateType::DISTRIBUTION
64
+ certificate_type = [
65
+ Spaceship::ConnectAPI::Certificate::CertificateType::IOS_DISTRIBUTION,
66
+ Spaceship::ConnectAPI::Certificate::CertificateType::MAC_APP_DISTRIBUTION,
67
+ Spaceship::ConnectAPI::Certificate::CertificateType::DISTRIBUTION
68
+ ].join(',')
53
69
  when :developer_id_application
54
- certificate_type = Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION
70
+ certificate_type = [
71
+ Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION
72
+ ].join(',')
73
+ when :mac_installer_distribution
74
+ certificate_type = [
75
+ Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION
76
+ ].join(',')
55
77
  else
56
78
  UI.user_error!("Cert type '#{cert_type}' is not supported")
57
79
  end
58
80
 
81
+ prov_type = Match.profile_type_sym(params[:type])
59
82
  output_dir_certs = File.join(storage.prefixed_working_directory, "certs", cert_type.to_s)
60
- output_dir_profiles = File.join(storage.prefixed_working_directory, "profiles", cert_type.to_s)
83
+ output_dir_profiles = File.join(storage.prefixed_working_directory, "profiles", prov_type.to_s)
61
84
 
62
85
  # Need to get the cert id by comparing base64 encoded cert content with certificate content from the API responses
63
- Spaceship::Portal.login(params[:username])
64
- Spaceship::Portal.select_team(team_id: params[:team_id], team_name: params[:team_name])
86
+ token = api_token(params)
87
+ if token
88
+ UI.message("Creating authorization token for App Store Connect API")
89
+ Spaceship::ConnectAPI.token = token
90
+ else
91
+ UI.message("Login to App Store Connect (#{params[:username]})")
92
+ Spaceship::ConnectAPI.login(params[:username], use_portal: true, use_tunes: false, portal_team_id: params[:team_id], team_name: params[:team_name])
93
+ end
65
94
  certs = Spaceship::ConnectAPI::Certificate.all(filter: { certificateType: certificate_type })
66
95
 
67
96
  # Base64 encode contents to find match from API to find a cert ID
@@ -86,7 +115,8 @@ module Match
86
115
  FileUtils.mkdir_p(output_dir_profiles)
87
116
  bundle_id = FastlaneCore::ProvisioningProfile.bundle_id(profile_path)
88
117
  profile_extension = FastlaneCore::ProvisioningProfile.profile_extension(profile_path)
89
- dest_profile_path = File.join(output_dir_profiles, "#{cert_type.to_s.capitalize}_#{bundle_id}#{profile_extension}")
118
+ profile_type_name = Match::Generator.profile_type_name(prov_type)
119
+ dest_profile_path = File.join(output_dir_profiles, "#{profile_type_name}_#{bundle_id}#{profile_extension}")
90
120
  files_to_commit.push(dest_profile_path)
91
121
  IO.copy_stream(profile_path, dest_profile_path)
92
122
  end
@@ -105,5 +135,11 @@ module Match
105
135
  UI.user_error!("#{file_description} does not exist at path: #{file_path}") unless !file_path.nil? || optional
106
136
  file_path
107
137
  end
138
+
139
+ def api_token(params)
140
+ @api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
141
+ @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
142
+ return @api_token
143
+ end
108
144
  end
109
145
  end