fastlane 2.178.0 → 2.182.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/LICENSE +1 -1
- data/README.md +97 -84
- data/cert/lib/cert/commands_generator.rb +2 -1
- data/cert/lib/cert/options.rb +1 -0
- data/cert/lib/cert/runner.rb +4 -0
- data/deliver/lib/deliver/commands_generator.rb +2 -1
- data/deliver/lib/deliver/download_screenshots.rb +1 -2
- data/deliver/lib/deliver/languages.rb +1 -1
- data/deliver/lib/deliver/options.rb +3 -2
- data/deliver/lib/deliver/runner.rb +4 -0
- data/deliver/lib/deliver/setup.rb +0 -1
- data/deliver/lib/deliver/upload_metadata.rb +2 -1
- data/fastlane/lib/fastlane/actions/actions_helper.rb +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +5 -0
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +3 -3
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
- data/fastlane/lib/fastlane/actions/build_app.rb +4 -0
- data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +4 -0
- data/fastlane/lib/fastlane/actions/clipboard.rb +3 -6
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +18 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -1
- data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +2 -6
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +4 -0
- data/fastlane/lib/fastlane/actions/get_version_number.rb +17 -10
- data/fastlane/lib/fastlane/actions/git_branch.rb +4 -10
- data/fastlane/lib/fastlane/actions/git_commit.rb +3 -1
- data/fastlane/lib/fastlane/actions/git_submodule_update.rb +16 -8
- data/fastlane/lib/fastlane/actions/git_tag_exists.rb +4 -0
- data/fastlane/lib/fastlane/actions/import_from_git.rb +5 -5
- data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +4 -0
- data/fastlane/lib/fastlane/actions/jira.rb +61 -14
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -0
- data/fastlane/lib/fastlane/actions/match_nuke.rb +59 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +98 -51
- data/fastlane/lib/fastlane/actions/slack.rb +155 -133
- data/fastlane/lib/fastlane/actions/sourcedocs.rb +164 -0
- data/fastlane/lib/fastlane/actions/spaceship_logs.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -2
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -2
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
- data/fastlane/lib/fastlane/commands_generator.rb +2 -1
- data/fastlane/lib/fastlane/fast_file.rb +10 -2
- data/fastlane/lib/fastlane/fastlane_require.rb +7 -1
- data/fastlane/lib/fastlane/helper/git_helper.rb +19 -7
- data/fastlane/lib/fastlane/lane_manager.rb +3 -2
- data/fastlane/lib/fastlane/notification/slack.rb +56 -0
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +1 -2
- data/fastlane/lib/fastlane/plugins/plugin_info.rb +2 -2
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +1 -2
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -2
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +7 -6
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +30 -35
- data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
- data/fastlane/lib/fastlane/setup/setup.rb +23 -10
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +39 -14
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +2 -0
- data/fastlane/lib/fastlane/version.rb +2 -2
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +3 -3
- data/fastlane/swift/Fastlane.swift +6852 -3824
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -0
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +9 -3
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/OptionalConfigValue.swift +131 -0
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +3 -3
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +5 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +5 -1
- data/fastlane/swift/SocketClient.swift +2 -1
- data/fastlane/swift/SocketResponse.swift +4 -2
- data/fastlane/swift/formatting/Brewfile.lock.json +18 -16
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/fastlane_core/lib/fastlane_core.rb +22 -21
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +50 -9
- data/fastlane_core/lib/fastlane_core/clipboard.rb +20 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +5 -3
- data/fastlane_core/lib/fastlane_core/helper.rb +28 -5
- data/fastlane_core/lib/fastlane_core/languages.rb +2 -2
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/help.erb +35 -0
- data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +16 -0
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +12 -1
- data/frameit/lib/frameit/commands_generator.rb +2 -1
- data/gym/lib/gym/commands_generator.rb +2 -1
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +13 -8
- data/gym/lib/gym/runner.rb +15 -4
- data/match/lib/match/change_password.rb +3 -3
- data/match/lib/match/commands_generator.rb +2 -1
- data/match/lib/match/encryption/interface.rb +1 -1
- data/match/lib/match/encryption/openssl.rb +2 -2
- data/match/lib/match/module.rb +1 -0
- data/pem/lib/pem/commands_generator.rb +2 -1
- data/pilot/lib/pilot/commands_generator.rb +2 -1
- data/pilot/lib/pilot/manager.rb +4 -0
- data/pilot/lib/pilot/options.rb +3 -2
- data/pilot/lib/pilot/tester_exporter.rb +0 -1
- data/pilot/lib/pilot/tester_manager.rb +0 -1
- data/precheck/lib/precheck/commands_generator.rb +2 -1
- data/precheck/lib/precheck/options.rb +1 -0
- data/precheck/lib/precheck/runner.rb +4 -0
- data/produce/lib/produce/commands_generator.rb +2 -1
- data/scan/lib/scan/commands_generator.rb +2 -1
- data/scan/lib/scan/options.rb +10 -5
- data/scan/lib/scan/runner.rb +54 -1
- data/scan/lib/scan/test_command_generator.rb +10 -8
- data/screengrab/lib/screengrab/android_environment.rb +6 -4
- data/screengrab/lib/screengrab/commands_generator.rb +2 -1
- data/screengrab/lib/screengrab/runner.rb +1 -1
- data/sigh/lib/sigh/commands_generator.rb +2 -1
- data/sigh/lib/sigh/options.rb +1 -0
- data/sigh/lib/sigh/runner.rb +4 -0
- data/snapshot/lib/assets/SnapfileTemplate +1 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
- data/snapshot/lib/snapshot/commands_generator.rb +3 -1
- data/snapshot/lib/snapshot/options.rb +5 -0
- data/snapshot/lib/snapshot/reports_generator.rb +4 -0
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +8 -4
- data/spaceship/README.md +2 -12
- data/spaceship/lib/spaceship/base.rb +2 -2
- data/spaceship/lib/spaceship/commands_generator.rb +4 -2
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +6 -2
- data/spaceship/lib/spaceship/connect_api/token.rb +7 -1
- data/spaceship/lib/spaceship/spaceauth_runner.rb +19 -9
- data/spaceship/lib/spaceship/tunes/members.rb +1 -1
- data/spaceship/lib/spaceship/ui.rb +2 -2
- data/supply/lib/supply/client.rb +3 -1
- data/supply/lib/supply/commands_generator.rb +2 -1
- data/supply/lib/supply/options.rb +2 -2
- data/supply/lib/supply/uploader.rb +1 -0
- metadata +53 -64
- data/gym/lib/gym/.runner.rb.swp +0 -0
- data/pilot/lib/pilot/tester_util.rb +0 -0
@@ -10,6 +10,7 @@
|
|
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
12
|
1257253924B7992C00E04FA3 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1257253824B7992B00E04FA3 /* main.swift */; };
|
13
|
+
12D2EB8D2620D83C00844013 /* OptionalConfigValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */; };
|
13
14
|
B302067B1F5E3E9000DE6EBD /* SnapshotfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */; };
|
14
15
|
B302067C1F5E3E9000DE6EBD /* GymfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */; };
|
15
16
|
B302067D1F5E3E9000DE6EBD /* MatchfileProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */; };
|
@@ -43,6 +44,7 @@
|
|
43
44
|
0311E386230AC1B20060BB5C /* Plugins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Plugins.swift; path = ../Plugins.swift; sourceTree = "<group>"; };
|
44
45
|
0311E38A230AC9490060BB5C /* Actions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Actions.swift; path = ../Actions.swift; sourceTree = "<group>"; };
|
45
46
|
1257253824B7992B00E04FA3 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = ../main.swift; sourceTree = "<group>"; };
|
47
|
+
12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OptionalConfigValue.swift; path = ../OptionalConfigValue.swift; sourceTree = "<group>"; };
|
46
48
|
B30206741F5E3E9000DE6EBD /* SnapshotfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotfileProtocol.swift; path = ../SnapshotfileProtocol.swift; sourceTree = "<group>"; };
|
47
49
|
B30206751F5E3E9000DE6EBD /* GymfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GymfileProtocol.swift; path = ../GymfileProtocol.swift; sourceTree = "<group>"; };
|
48
50
|
B30206761F5E3E9000DE6EBD /* MatchfileProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MatchfileProtocol.swift; path = ../MatchfileProtocol.swift; sourceTree = "<group>"; };
|
@@ -154,6 +156,7 @@
|
|
154
156
|
children = (
|
155
157
|
B3144C08200553C800470AFE /* README.txt */,
|
156
158
|
B3BA659E1F5A269100B34850 /* LaneFileProtocol.swift */,
|
159
|
+
12D2EB8C2620D83B00844013 /* OptionalConfigValue.swift */,
|
157
160
|
);
|
158
161
|
name = "Fastfile Components";
|
159
162
|
sourceTree = "<group>";
|
@@ -275,6 +278,7 @@
|
|
275
278
|
D55B28C91F6C588300DC42C5 /* Snapshotfile.swift in Sources */,
|
276
279
|
B3BA65A61F5A269100B34850 /* Fastlane.swift in Sources */,
|
277
280
|
D55B28C81F6C588300DC42C5 /* Screengrabfile.swift in Sources */,
|
281
|
+
12D2EB8D2620D83C00844013 /* OptionalConfigValue.swift in Sources */,
|
278
282
|
);
|
279
283
|
runOnlyForDeploymentPostprocessing = 0;
|
280
284
|
};
|
@@ -17,20 +17,20 @@ public protocol LaneFileProtocol: class {
|
|
17
17
|
func recordLaneDescriptions()
|
18
18
|
func beforeAll(with lane: String)
|
19
19
|
func afterAll(with lane: String)
|
20
|
-
func onError(currentLane: String, errorInfo: String)
|
20
|
+
func onError(currentLane: String, errorInfo: String, errorClass: String?, errorMessage: String?)
|
21
21
|
}
|
22
22
|
|
23
23
|
public extension LaneFileProtocol {
|
24
24
|
var fastlaneVersion: String { return "" } // Defaults to "" because that means any is fine
|
25
25
|
func beforeAll(with _: String) {} // No-op by default
|
26
26
|
func afterAll(with _: String) {} // No-op by default
|
27
|
-
func onError(currentLane _: String, errorInfo _: String) {} // No-op by default
|
28
27
|
func recordLaneDescriptions() {} // No-op by default
|
29
28
|
}
|
30
29
|
|
31
30
|
@objcMembers
|
32
31
|
open class LaneFile: NSObject, LaneFileProtocol {
|
33
32
|
private(set) static var fastfileInstance: LaneFile?
|
33
|
+
private static var onErrorCalled = Set<String>()
|
34
34
|
|
35
35
|
private static func trimLaneFromName(laneName: String) -> String {
|
36
36
|
return String(laneName.prefix(laneName.count - 4))
|
@@ -40,6 +40,10 @@ open class LaneFile: NSObject, LaneFileProtocol {
|
|
40
40
|
return String(laneName.prefix(laneName.count - 12))
|
41
41
|
}
|
42
42
|
|
43
|
+
public func onError(currentLane: String, errorInfo _: String, errorClass _: String?, errorMessage _: String?) {
|
44
|
+
LaneFile.onErrorCalled.insert(currentLane)
|
45
|
+
}
|
46
|
+
|
43
47
|
private static var laneFunctionNames: [String] {
|
44
48
|
var lanes: [String] = []
|
45
49
|
var methodCount: UInt32 = 0
|
@@ -137,7 +141,9 @@ open class LaneFile: NSObject, LaneFileProtocol {
|
|
137
141
|
_ = fastfileInstance.perform(NSSelectorFromString(laneMethod), with: parameters)
|
138
142
|
|
139
143
|
// Call only on success.
|
140
|
-
|
144
|
+
if !LaneFile.onErrorCalled.contains(lane) {
|
145
|
+
fastfileInstance.afterAll(with: lane)
|
146
|
+
}
|
141
147
|
|
142
148
|
log(message: "Done running lane: \(lane) 🚀")
|
143
149
|
return true
|
@@ -0,0 +1,131 @@
|
|
1
|
+
// OptionalConfigValue.swift
|
2
|
+
// Copyright (c) 2021 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
|
+
|
13
|
+
public enum OptionalConfigValue<T> {
|
14
|
+
case fastlaneDefault(T)
|
15
|
+
case userDefined(T)
|
16
|
+
case `nil`
|
17
|
+
|
18
|
+
func asRubyArgument(name: String, type: RubyCommand.Argument.ArgType? = nil) -> RubyCommand.Argument? {
|
19
|
+
if case let .userDefined(value) = self {
|
20
|
+
return RubyCommand.Argument(name: name, value: value, type: type)
|
21
|
+
}
|
22
|
+
return nil
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
extension Optional: ExpressibleByIntegerLiteral where Wrapped: ExpressibleByIntegerLiteral {
|
27
|
+
public typealias IntegerLiteralType = Wrapped.IntegerLiteralType
|
28
|
+
|
29
|
+
public init(integerLiteral value: Wrapped.IntegerLiteralType) {
|
30
|
+
self = .some(.init(integerLiteral: value))
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
extension Optional: ExpressibleByUnicodeScalarLiteral where Wrapped: ExpressibleByUnicodeScalarLiteral {
|
35
|
+
public typealias UnicodeScalarLiteralType = Wrapped.UnicodeScalarLiteralType
|
36
|
+
|
37
|
+
public init(unicodeScalarLiteral value: Wrapped.UnicodeScalarLiteralType) {
|
38
|
+
self = .some(.init(unicodeScalarLiteral: value))
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
extension Optional: ExpressibleByExtendedGraphemeClusterLiteral where Wrapped: ExpressibleByStringLiteral {
|
43
|
+
public typealias ExtendedGraphemeClusterLiteralType = Wrapped.ExtendedGraphemeClusterLiteralType
|
44
|
+
|
45
|
+
public init(extendedGraphemeClusterLiteral value: Wrapped.ExtendedGraphemeClusterLiteralType) {
|
46
|
+
self = .some(.init(extendedGraphemeClusterLiteral: value))
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
extension Optional: ExpressibleByStringLiteral where Wrapped: ExpressibleByStringLiteral {
|
51
|
+
public typealias StringLiteralType = Wrapped.StringLiteralType
|
52
|
+
|
53
|
+
public init(stringLiteral value: Wrapped.StringLiteralType) {
|
54
|
+
self = .some(.init(stringLiteral: value))
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
extension OptionalConfigValue: ExpressibleByUnicodeScalarLiteral where T == String? {
|
59
|
+
public typealias UnicodeScalarLiteralType = String
|
60
|
+
|
61
|
+
public init(unicodeScalarLiteral value: UnicodeScalarLiteralType) {
|
62
|
+
self = .userDefined(value)
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
extension OptionalConfigValue: ExpressibleByExtendedGraphemeClusterLiteral where T == String? {
|
67
|
+
public typealias ExtendedGraphemeClusterLiteralType = String
|
68
|
+
|
69
|
+
public init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType) {
|
70
|
+
self = .userDefined(value)
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
extension OptionalConfigValue: ExpressibleByStringLiteral where T == String? {
|
75
|
+
public typealias StringLiteralType = String
|
76
|
+
|
77
|
+
public init(stringLiteral value: StringLiteralType) {
|
78
|
+
self = .userDefined(value)
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
extension OptionalConfigValue: ExpressibleByNilLiteral {
|
83
|
+
public init(nilLiteral _: ()) {
|
84
|
+
self = .nil
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
88
|
+
extension OptionalConfigValue: ExpressibleByIntegerLiteral where T == Int? {
|
89
|
+
public typealias IntegerLiteralType = Int
|
90
|
+
|
91
|
+
public init(integerLiteral value: IntegerLiteralType) {
|
92
|
+
self = .userDefined(value)
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
extension OptionalConfigValue: ExpressibleByArrayLiteral where T == [String] {
|
97
|
+
public typealias ArrayLiteralElement = String
|
98
|
+
|
99
|
+
public init(arrayLiteral elements: ArrayLiteralElement...) {
|
100
|
+
self = .userDefined(elements)
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
extension OptionalConfigValue: ExpressibleByFloatLiteral where T == Float {
|
105
|
+
public typealias FloatLiteralType = Float
|
106
|
+
|
107
|
+
public init(floatLiteral value: FloatLiteralType) {
|
108
|
+
self = .userDefined(value)
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
extension OptionalConfigValue: ExpressibleByBooleanLiteral where T == Bool {
|
113
|
+
public typealias BooleanLiteralType = Bool
|
114
|
+
|
115
|
+
public init(booleanLiteral value: BooleanLiteralType) {
|
116
|
+
self = .userDefined(value)
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
extension OptionalConfigValue: ExpressibleByDictionaryLiteral where T == [String: Any] {
|
121
|
+
public typealias Key = String
|
122
|
+
public typealias Value = Any
|
123
|
+
|
124
|
+
public init(dictionaryLiteral elements: (Key, Value)...) {
|
125
|
+
var dict: [Key: Value] = [:]
|
126
|
+
elements.forEach {
|
127
|
+
dict[$0.0] = $0.1
|
128
|
+
}
|
129
|
+
self = .userDefined(dict)
|
130
|
+
}
|
131
|
+
}
|
@@ -12,7 +12,7 @@ public protocol PrecheckfileProtocol: class {
|
|
12
12
|
var appIdentifier: String { get }
|
13
13
|
|
14
14
|
/// Your Apple ID Username
|
15
|
-
var username: String { get }
|
15
|
+
var username: String? { get }
|
16
16
|
|
17
17
|
/// The ID of your App Store Connect team if you're in multiple teams
|
18
18
|
var teamId: String? { get }
|
@@ -40,7 +40,7 @@ public extension PrecheckfileProtocol {
|
|
40
40
|
var apiKeyPath: String? { return nil }
|
41
41
|
var apiKey: [String: Any]? { return nil }
|
42
42
|
var appIdentifier: String { return "" }
|
43
|
-
var username: String { return
|
43
|
+
var username: String? { return nil }
|
44
44
|
var teamId: String? { return nil }
|
45
45
|
var teamName: String? { return nil }
|
46
46
|
var platform: String { return "ios" }
|
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
|
|
52
52
|
|
53
53
|
// Please don't remove the lines below
|
54
54
|
// They are used to detect outdated files
|
55
|
-
// FastlaneRunnerAPIVersion [0.9.
|
55
|
+
// FastlaneRunnerAPIVersion [0.9.62]
|
@@ -51,7 +51,7 @@ struct RubyCommand: RubyCommandable {
|
|
51
51
|
if type == .stringClosure {
|
52
52
|
return "{\"name\" : \"\(name)\", \"value\" : \"ignored_for_closure\"\(typeJson)}"
|
53
53
|
} else if let array = someValue as? [String] {
|
54
|
-
return "{\"name\" : \"\(name)\", \"value\" : \
|
54
|
+
return "{\"name\" : \"\(name)\", \"value\" : \(array)\(typeJson)}"
|
55
55
|
} else if let hash = someValue as? [String: Any] {
|
56
56
|
let jsonData = try! JSONSerialization.data(withJSONObject: hash, options: [])
|
57
57
|
let jsonString = String(data: jsonData, encoding: .utf8)!
|
@@ -209,6 +209,9 @@ public protocol ScanfileProtocol: class {
|
|
209
209
|
/// Lets xcodebuild use system's scm configuration
|
210
210
|
var useSystemScm: Bool { get }
|
211
211
|
|
212
|
+
/// The number of times a test can fail before scan should stop retrying
|
213
|
+
var numberOfRetries: Int { get }
|
214
|
+
|
212
215
|
/// Should this step stop the build if the tests fail? Set this to false if you're using trainer
|
213
216
|
var failBuild: Bool { get }
|
214
217
|
}
|
@@ -283,9 +286,10 @@ public extension ScanfileProtocol {
|
|
283
286
|
var skipPackageDependenciesResolution: Bool { return false }
|
284
287
|
var disablePackageAutomaticUpdates: Bool { return false }
|
285
288
|
var useSystemScm: Bool { return false }
|
289
|
+
var numberOfRetries: Int { return 0 }
|
286
290
|
var failBuild: Bool { return true }
|
287
291
|
}
|
288
292
|
|
289
293
|
// Please don't remove the lines below
|
290
294
|
// They are used to detect outdated files
|
291
|
-
// FastlaneRunnerAPIVersion [0.9.
|
295
|
+
// FastlaneRunnerAPIVersion [0.9.74]
|
@@ -53,6 +53,9 @@ public protocol SnapshotfileProtocol: class {
|
|
53
53
|
/// Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception
|
54
54
|
var overrideStatusBar: Bool { get }
|
55
55
|
|
56
|
+
/// Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
|
57
|
+
var overrideStatusBarArguments: String? { get }
|
58
|
+
|
56
59
|
/// Enabling this option will configure the Simulator's system language
|
57
60
|
var localizeSimulator: Bool { get }
|
58
61
|
|
@@ -162,6 +165,7 @@ public extension SnapshotfileProtocol {
|
|
162
165
|
var eraseSimulator: Bool { return false }
|
163
166
|
var headless: Bool { return true }
|
164
167
|
var overrideStatusBar: Bool { return false }
|
168
|
+
var overrideStatusBarArguments: String? { return nil }
|
165
169
|
var localizeSimulator: Bool { return false }
|
166
170
|
var darkMode: Bool? { return nil }
|
167
171
|
var appIdentifier: String? { return nil }
|
@@ -196,4 +200,4 @@ public extension SnapshotfileProtocol {
|
|
196
200
|
|
197
201
|
// Please don't remove the lines below
|
198
202
|
// They are used to detect outdated files
|
199
|
-
// FastlaneRunnerAPIVersion [0.9.
|
203
|
+
// FastlaneRunnerAPIVersion [0.9.58]
|
@@ -302,7 +302,8 @@ extension SocketClient: StreamDelegate {
|
|
302
302
|
self.closeSession(sendAbort: false)
|
303
303
|
}
|
304
304
|
|
305
|
-
case let .failure(failureInformation):
|
305
|
+
case let .failure(failureInformation, failureClass, failureMessage):
|
306
|
+
LaneFile.fastfileInstance?.onError(currentLane: ArgumentProcessor(args: CommandLine.arguments).currentLane, errorInfo: failureInformation.joined(), errorClass: failureClass, errorMessage: failureMessage)
|
306
307
|
socketDelegate?.commandExecuted(serverResponse: .serverError) {
|
307
308
|
$0.writeSemaphore.signal()
|
308
309
|
self.handleFailure(message: failureInformation)
|
@@ -13,7 +13,7 @@ import Foundation
|
|
13
13
|
struct SocketResponse {
|
14
14
|
enum ResponseType {
|
15
15
|
case parseFailure(failureInformation: [String])
|
16
|
-
case failure(failureInformation: [String])
|
16
|
+
case failure(failureInformation: [String], failureClass: String?, failureMessage: String?)
|
17
17
|
case readyForNext(returnedObject: String?, closureArgumentValue: String?)
|
18
18
|
case clientInitiatedCancel
|
19
19
|
|
@@ -40,7 +40,9 @@ struct SocketResponse {
|
|
40
40
|
return
|
41
41
|
}
|
42
42
|
|
43
|
-
|
43
|
+
let failureClass = statusDictionary["failure_class"] as? String
|
44
|
+
let failureMessage = statusDictionary["failure_message"] as? String
|
45
|
+
self = .failure(failureInformation: failureInformation, failureClass: failureClass, failureMessage: failureMessage)
|
44
46
|
return
|
45
47
|
}
|
46
48
|
self = .parseFailure(failureInformation: ["Message status: \(status) not a supported status"])
|
@@ -2,28 +2,30 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
5
|
+
"version": "0.48.0",
|
6
6
|
"bottle": {
|
7
7
|
"rebuild": 0,
|
8
|
-
"
|
9
|
-
"prefix": "/usr/local",
|
10
|
-
"root_url": "https://homebrew.bintray.com/bottles",
|
8
|
+
"root_url": "https://ghcr.io/v2/homebrew/core",
|
11
9
|
"files": {
|
12
10
|
"arm64_big_sur": {
|
13
|
-
"
|
14
|
-
"
|
11
|
+
"cellar": ":any_skip_relocation",
|
12
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:bca1fc4ac0264ff950c14eb3c72c0fa321baa99fb60178266da19b680d67147b",
|
13
|
+
"sha256": "bca1fc4ac0264ff950c14eb3c72c0fa321baa99fb60178266da19b680d67147b"
|
15
14
|
},
|
16
15
|
"big_sur": {
|
17
|
-
"
|
18
|
-
"
|
16
|
+
"cellar": ":any_skip_relocation",
|
17
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:fa1af90b137298039eab4205a9a8733fbba4f9e5cf0322197674ce6f1582f0e0",
|
18
|
+
"sha256": "fa1af90b137298039eab4205a9a8733fbba4f9e5cf0322197674ce6f1582f0e0"
|
19
19
|
},
|
20
20
|
"catalina": {
|
21
|
-
"
|
22
|
-
"
|
21
|
+
"cellar": ":any_skip_relocation",
|
22
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:35bc84d95bcd8e5066669c6383f999507b1d1a8a08f3aae321f89e2944ea39e2",
|
23
|
+
"sha256": "35bc84d95bcd8e5066669c6383f999507b1d1a8a08f3aae321f89e2944ea39e2"
|
23
24
|
},
|
24
25
|
"mojave": {
|
25
|
-
"
|
26
|
-
"
|
26
|
+
"cellar": ":any_skip_relocation",
|
27
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:b5274f542e17907e806ca6e6d1ca630a538bc2e98330329bca5a1568d76a7267",
|
28
|
+
"sha256": "b5274f542e17907e806ca6e6d1ca630a538bc2e98330329bca5a1568d76a7267"
|
27
29
|
}
|
28
30
|
}
|
29
31
|
}
|
@@ -33,11 +35,11 @@
|
|
33
35
|
"system": {
|
34
36
|
"macos": {
|
35
37
|
"catalina": {
|
36
|
-
"HOMEBREW_VERSION": "3.
|
38
|
+
"HOMEBREW_VERSION": "3.1.5-69-g70c8693",
|
37
39
|
"HOMEBREW_PREFIX": "/usr/local",
|
38
|
-
"Homebrew/homebrew-core": "
|
39
|
-
"CLT": "11.0.33.12",
|
40
|
-
"Xcode": "12.
|
40
|
+
"Homebrew/homebrew-core": "d4dcdecc3c226aed326813f67043b728342eec96",
|
41
|
+
"CLT": "11.0.0.33.12",
|
42
|
+
"Xcode": "12.4",
|
41
43
|
"macOS": "10.15.7"
|
42
44
|
},
|
43
45
|
"big_sur": {
|
@@ -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","main.swift":"Runner Code","ArgumentProcessor.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","OptionalConfigValue.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"}
|