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.
- checksums.yaml +4 -4
- data/README.md +80 -80
- data/cert/lib/cert/options.rb +28 -1
- data/cert/lib/cert/runner.rb +50 -33
- data/deliver/lib/deliver/app_screenshot_iterator.rb +4 -4
- data/deliver/lib/deliver/options.rb +17 -1
- data/deliver/lib/deliver/runner.rb +36 -7
- data/deliver/lib/deliver/upload_metadata.rb +37 -6
- data/deliver/lib/deliver/upload_price_tier.rb +7 -2
- data/deliver/lib/deliver/upload_screenshots.rb +25 -8
- data/{pilot/lib/pilot/.manager.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
- data/fastlane/lib/fastlane/actions/{.ensure_git_status_clean.rb.swp → .git_commit.rb.swp} +0 -0
- data/fastlane/lib/fastlane/actions/actions_helper.rb +20 -1
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +6 -1
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +1 -0
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -2
- data/fastlane/lib/fastlane/actions/docs/run_tests.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +3 -3
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +2 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +32 -7
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +13 -2
- 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 +15 -4
- data/fastlane/swift/Fastfile.swift +5 -1
- data/fastlane/swift/Fastlane.swift +2333 -2240
- 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 +42 -29
- data/fastlane/swift/MainProcess.swift +77 -0
- data/fastlane/swift/Matchfile.swift +5 -2
- data/fastlane/swift/MatchfileProtocol.swift +21 -6
- data/fastlane/swift/Plugins.swift +2 -1
- data/fastlane/swift/Precheckfile.swift +5 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +18 -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/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +6 -7
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -2
- data/frameit/lib/frameit/editor.rb +1 -0
- data/match/lib/match/generator.rb +6 -1
- data/match/lib/match/importer.rb +44 -8
- data/match/lib/match/migrate.rb +13 -2
- data/match/lib/match/nuke.rb +65 -22
- data/match/lib/match/options.rb +27 -2
- data/match/lib/match/runner.rb +38 -10
- data/match/lib/match/spaceship_ensure.rb +27 -21
- data/match/lib/match/storage/google_cloud_storage.rb +20 -3
- data/match/lib/match/storage/s3_storage.rb +19 -3
- data/pilot/lib/pilot/options.rb +2 -2
- data/precheck/lib/precheck/options.rb +25 -0
- data/precheck/lib/precheck/rule_processor.rb +94 -60
- data/precheck/lib/precheck/runner.rb +26 -5
- data/sigh/lib/sigh/options.rb +21 -0
- data/sigh/lib/sigh/runner.rb +80 -38
- data/snapshot/lib/assets/SnapshotHelper.swift +17 -2
- data/spaceship/README.md +1 -1
- data/spaceship/lib/spaceship/{connect_api/.DS_Store → .DS_Store} +0 -0
- data/spaceship/lib/spaceship/client.rb +2 -1
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/api_client.rb +3 -3
- data/spaceship/lib/spaceship/connect_api/client.rb +38 -15
- data/{fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp → spaceship/lib/spaceship/connect_api/models/.app_store_version_submission.rb.swp} +0 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +17 -9
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +3 -5
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +3 -5
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +21 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +2 -1
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +42 -0
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +7 -1
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +59 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +28 -2
- data/spaceship/lib/spaceship/connect_api/spaceship.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +29 -9
- data/spaceship/lib/spaceship/connect_api/users/users.rb +40 -0
- data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +11 -5
- metadata +24 -25
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
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
|
@@ -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.
|
20
|
+
// Generated with fastlane 2.162.0
|
@@ -1,4 +1,7 @@
|
|
1
|
-
|
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.
|
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.
|
20
|
+
// Generated with fastlane 2.162.0
|
@@ -1,4 +1,7 @@
|
|
1
|
-
|
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.
|
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.
|
20
|
+
// Generated with fastlane 2.162.0
|
@@ -1,4 +1,7 @@
|
|
1
|
-
|
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.
|
187
|
+
// FastlaneRunnerAPIVersion [0.9.37]
|
@@ -1,9 +1,5 @@
|
|
1
|
-
//
|
2
|
-
//
|
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
|
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
|
@@ -2,22 +2,22 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
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.
|
12
|
-
"sha256": "
|
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.
|
16
|
-
"sha256": "
|
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.
|
20
|
-
"sha256": "
|
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.
|
30
|
+
"HOMEBREW_VERSION": "2.4.9-133-g0fdf8f2",
|
31
31
|
"HOMEBREW_PREFIX": "/usr/local",
|
32
|
-
"Homebrew/homebrew-core": "
|
32
|
+
"Homebrew/homebrew-core": "7141f37f3af0e6702f6dab2263852ddefbbbf8ed",
|
33
33
|
"CLT": "11.0.28.3",
|
34
|
-
"Xcode": "11.
|
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
|
}
|
data/fastlane/swift/main.swift
CHANGED
@@ -1,9 +1,5 @@
|
|
1
|
-
//
|
2
|
-
//
|
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
|
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","
|
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
|
-
|
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
|
56
|
-
|
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
|
-
|
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
|
-
|
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],
|
data/match/lib/match/importer.rb
CHANGED
@@ -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 =
|
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 =
|
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 =
|
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",
|
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
|
-
|
64
|
-
|
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
|
-
|
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
|