fastlane 2.157.4 → 2.162.0

Sign up to get free protection for your applications and to get access to all the features.
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