fastlane 2.181.0 → 2.184.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +90 -90
- data/cert/lib/cert/commands_generator.rb +2 -1
- data/cert/lib/cert/runner.rb +3 -7
- data/deliver/lib/assets/summary.html.erb +10 -10
- data/deliver/lib/deliver/commands_generator.rb +3 -2
- data/deliver/lib/deliver/detect_values.rb +5 -3
- data/deliver/lib/deliver/download_screenshots.rb +1 -1
- data/deliver/lib/deliver/html_generator.rb +2 -2
- data/deliver/lib/deliver/languages.rb +1 -1
- data/deliver/lib/deliver/module.rb +6 -0
- data/deliver/lib/deliver/options.rb +38 -53
- data/deliver/lib/deliver/runner.rb +8 -11
- data/deliver/lib/deliver/setup.rb +1 -1
- data/deliver/lib/deliver/submit_for_review.rb +4 -4
- data/deliver/lib/deliver/upload_metadata.rb +20 -6
- data/deliver/lib/deliver/upload_price_tier.rb +1 -1
- data/deliver/lib/deliver/upload_screenshots.rb +1 -1
- data/fastlane/lib/fastlane/actions/actions_helper.rb +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +7 -11
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +12 -2
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
- data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +5 -1
- data/fastlane/lib/fastlane/actions/danger.rb +7 -1
- 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_app_store.md.erb +32 -12
- data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +3 -1
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +5 -1
- data/fastlane/lib/fastlane/actions/git_commit.rb +3 -1
- data/fastlane/lib/fastlane/actions/git_pull.rb +4 -10
- data/fastlane/lib/fastlane/actions/git_submodule_update.rb +16 -8
- data/fastlane/lib/fastlane/actions/hipchat.rb +2 -1
- data/fastlane/lib/fastlane/actions/import_from_git.rb +5 -5
- data/fastlane/lib/fastlane/actions/notification.rb +1 -1
- data/fastlane/lib/fastlane/actions/register_device.rb +7 -10
- data/fastlane/lib/fastlane/actions/register_devices.rb +7 -10
- data/fastlane/lib/fastlane/actions/set_changelog.rb +7 -10
- data/fastlane/lib/fastlane/actions/slack.rb +19 -18
- data/fastlane/lib/fastlane/actions/swiftlint.rb +16 -4
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -2
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -1
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -5
- 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/notification/slack.rb +56 -0
- data/fastlane/lib/fastlane/plugins/plugin_info.rb +2 -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/swift_fastlane_function.rb +37 -14
- data/fastlane/lib/fastlane/version.rb +2 -2
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +20 -20
- data/fastlane/swift/Fastlane.swift +6749 -3708
- 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/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/OptionalConfigValue.swift +101 -0
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -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/formatting/Brewfile.lock.json +12 -12
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +39 -3
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +5 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +2 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +4 -4
- data/fastlane_core/lib/fastlane_core/languages.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 +4 -1
- data/frameit/lib/frameit/commands_generator.rb +2 -1
- data/frameit/lib/frameit/config_parser.rb +2 -2
- data/frameit/lib/frameit/frame_downloader.rb +2 -1
- data/gym/lib/gym/code_signing_mapping.rb +2 -2
- data/gym/lib/gym/commands_generator.rb +2 -1
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +6 -5
- data/match/lib/match/commands_generator.rb +2 -1
- data/match/lib/match/importer.rb +6 -10
- data/match/lib/match/migrate.rb +2 -3
- data/match/lib/match/nuke.rb +3 -7
- data/match/lib/match/runner.rb +2 -3
- data/match/lib/match/spaceship_ensure.rb +3 -0
- data/match/lib/match/storage/google_cloud_storage.rb +2 -2
- data/match/lib/match/storage/s3_storage.rb +2 -2
- data/pem/lib/pem/commands_generator.rb +2 -1
- data/pilot/lib/pilot/build_manager.rb +5 -3
- data/pilot/lib/pilot/commands_generator.rb +2 -1
- data/pilot/lib/pilot/manager.rb +3 -7
- data/pilot/lib/pilot/options.rb +10 -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/runner.rb +8 -7
- data/produce/lib/produce/commands_generator.rb +2 -1
- data/scan/lib/scan/commands_generator.rb +2 -1
- data/scan/lib/scan/runner.rb +1 -1
- data/screengrab/lib/screengrab/commands_generator.rb +2 -1
- data/sigh/lib/assets/resign.sh +77 -46
- data/sigh/lib/sigh/commands_generator.rb +2 -1
- data/sigh/lib/sigh/download_all.rb +4 -8
- data/sigh/lib/sigh/runner.rb +4 -8
- data/snapshot/lib/assets/SnapfileTemplate +1 -1
- data/snapshot/lib/snapshot/commands_generator.rb +3 -1
- data/snapshot/lib/snapshot/options.rb +5 -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 -2
- data/spaceship/lib/spaceship/base.rb +2 -2
- data/spaceship/lib/spaceship/commands_generator.rb +2 -1
- data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/.age_rating_declaration.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +35 -4
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +10 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +2 -3
- 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 +6 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +4 -2
- data/spaceship/lib/spaceship/ui.rb +2 -2
- data/supply/lib/supply/client.rb +2 -2
- data/supply/lib/supply/commands_generator.rb +2 -1
- data/supply/lib/supply/uploader.rb +2 -2
- metadata +74 -86
- 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
|
};
|
@@ -0,0 +1,101 @@
|
|
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 OptionalConfigValue: ExpressibleByUnicodeScalarLiteral where T == String? {
|
27
|
+
public typealias UnicodeScalarLiteralType = String
|
28
|
+
|
29
|
+
public init(unicodeScalarLiteral value: UnicodeScalarLiteralType) {
|
30
|
+
self = .userDefined(value)
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
extension OptionalConfigValue: ExpressibleByExtendedGraphemeClusterLiteral where T == String? {
|
35
|
+
public typealias ExtendedGraphemeClusterLiteralType = String
|
36
|
+
|
37
|
+
public init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType) {
|
38
|
+
self = .userDefined(value)
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
extension OptionalConfigValue: ExpressibleByStringLiteral where T == String? {
|
43
|
+
public typealias StringLiteralType = String
|
44
|
+
|
45
|
+
public init(stringLiteral value: StringLiteralType) {
|
46
|
+
self = .userDefined(value)
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
extension OptionalConfigValue: ExpressibleByStringInterpolation where T == String? {}
|
51
|
+
|
52
|
+
extension OptionalConfigValue: ExpressibleByNilLiteral {
|
53
|
+
public init(nilLiteral _: ()) {
|
54
|
+
self = .nil
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
extension OptionalConfigValue: ExpressibleByIntegerLiteral where T == Int? {
|
59
|
+
public typealias IntegerLiteralType = Int
|
60
|
+
|
61
|
+
public init(integerLiteral value: IntegerLiteralType) {
|
62
|
+
self = .userDefined(value)
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
extension OptionalConfigValue: ExpressibleByArrayLiteral where T == [String] {
|
67
|
+
public typealias ArrayLiteralElement = String
|
68
|
+
|
69
|
+
public init(arrayLiteral elements: ArrayLiteralElement...) {
|
70
|
+
self = .userDefined(elements)
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
extension OptionalConfigValue: ExpressibleByFloatLiteral where T == Float {
|
75
|
+
public typealias FloatLiteralType = Float
|
76
|
+
|
77
|
+
public init(floatLiteral value: FloatLiteralType) {
|
78
|
+
self = .userDefined(value)
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
extension OptionalConfigValue: ExpressibleByBooleanLiteral where T == Bool {
|
83
|
+
public typealias BooleanLiteralType = Bool
|
84
|
+
|
85
|
+
public init(booleanLiteral value: BooleanLiteralType) {
|
86
|
+
self = .userDefined(value)
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
extension OptionalConfigValue: ExpressibleByDictionaryLiteral where T == [String: Any] {
|
91
|
+
public typealias Key = String
|
92
|
+
public typealias Value = Any
|
93
|
+
|
94
|
+
public init(dictionaryLiteral elements: (Key, Value)...) {
|
95
|
+
var dict: [Key: Value] = [:]
|
96
|
+
elements.forEach {
|
97
|
+
dict[$0.0] = $0.1
|
98
|
+
}
|
99
|
+
self = .userDefined(dict)
|
100
|
+
}
|
101
|
+
}
|
@@ -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.62]
|
@@ -2,30 +2,30 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
5
|
+
"version": "0.48.2",
|
6
6
|
"bottle": {
|
7
7
|
"rebuild": 0,
|
8
8
|
"root_url": "https://ghcr.io/v2/homebrew/core",
|
9
9
|
"files": {
|
10
10
|
"arm64_big_sur": {
|
11
11
|
"cellar": ":any_skip_relocation",
|
12
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
13
|
-
"sha256": "
|
12
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:35f197cd20e7112460002fd08aa1c5b8902cfec22b1065669726c23820f8bc5b",
|
13
|
+
"sha256": "35f197cd20e7112460002fd08aa1c5b8902cfec22b1065669726c23820f8bc5b"
|
14
14
|
},
|
15
15
|
"big_sur": {
|
16
16
|
"cellar": ":any_skip_relocation",
|
17
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
18
|
-
"sha256": "
|
17
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:456fcbe08ec3a57d9730fa4ad70e36c53f74fc64fc5f1cae1b25dfc43f693480",
|
18
|
+
"sha256": "456fcbe08ec3a57d9730fa4ad70e36c53f74fc64fc5f1cae1b25dfc43f693480"
|
19
19
|
},
|
20
20
|
"catalina": {
|
21
21
|
"cellar": ":any_skip_relocation",
|
22
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
23
|
-
"sha256": "
|
22
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:390c8307574e61a372e2fde3f6d0fdfff7401683b8875f22ba6712b154092a64",
|
23
|
+
"sha256": "390c8307574e61a372e2fde3f6d0fdfff7401683b8875f22ba6712b154092a64"
|
24
24
|
},
|
25
25
|
"mojave": {
|
26
26
|
"cellar": ":any_skip_relocation",
|
27
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
28
|
-
"sha256": "
|
27
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:07b289fad1b3fae73824a483cae12233b09c5bacdba7d1ee921b99940af77baf",
|
28
|
+
"sha256": "07b289fad1b3fae73824a483cae12233b09c5bacdba7d1ee921b99940af77baf"
|
29
29
|
}
|
30
30
|
}
|
31
31
|
}
|
@@ -35,11 +35,11 @@
|
|
35
35
|
"system": {
|
36
36
|
"macos": {
|
37
37
|
"catalina": {
|
38
|
-
"HOMEBREW_VERSION": "3.1.
|
38
|
+
"HOMEBREW_VERSION": "3.1.8-62-gc278da1",
|
39
39
|
"HOMEBREW_PREFIX": "/usr/local",
|
40
|
-
"Homebrew/homebrew-core": "
|
40
|
+
"Homebrew/homebrew-core": "decc1c2cbcdbaf86c19d95899ebecea59c8ce3ac",
|
41
41
|
"CLT": "11.0.0.33.12",
|
42
|
-
"Xcode": "12.
|
42
|
+
"Xcode": "12.4",
|
43
43
|
"macOS": "10.15.7"
|
44
44
|
},
|
45
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"}
|
@@ -3,12 +3,15 @@ require 'spaceship/connect_api'
|
|
3
3
|
require_relative 'ui/ui'
|
4
4
|
|
5
5
|
module FastlaneCore
|
6
|
+
class BuildWatcherError < StandardError
|
7
|
+
end
|
8
|
+
|
6
9
|
class BuildWatcher
|
7
10
|
VersionMatches = Struct.new(:version, :builds)
|
8
11
|
|
9
12
|
class << self
|
10
13
|
# @return The build we waited for. This method will always return a build
|
11
|
-
def wait_for_build_processing_to_be_complete(app_id: nil, platform: nil, train_version: nil, app_version: nil, build_version: nil, poll_interval: 10, strict_build_watch: false, return_when_build_appears: false, return_spaceship_testflight_build: true, select_latest: false)
|
14
|
+
def wait_for_build_processing_to_be_complete(app_id: nil, platform: nil, train_version: nil, app_version: nil, build_version: nil, poll_interval: 10, timeout_duration: nil, strict_build_watch: false, return_when_build_appears: false, return_spaceship_testflight_build: true, select_latest: false)
|
12
15
|
# Warn about train_version being removed in the future
|
13
16
|
if train_version
|
14
17
|
UI.deprecated(":train_version is no longer a used argument on FastlaneCore::BuildWatcher. Please use :app_version instead.")
|
@@ -23,6 +26,12 @@ module FastlaneCore
|
|
23
26
|
platform = Spaceship::ConnectAPI::Platform.map(platform) if platform
|
24
27
|
UI.message("Waiting for processing on... app_id: #{app_id}, app_version: #{app_version}, build_version: #{build_version}, platform: #{platform}")
|
25
28
|
|
29
|
+
build_watching_start_time = Time.new
|
30
|
+
unless timeout_duration.nil?
|
31
|
+
end_time = build_watching_start_time + timeout_duration
|
32
|
+
UI.message("Will timeout watching build after #{timeout_duration} seconds around #{end_time}...")
|
33
|
+
end
|
34
|
+
|
26
35
|
showed_info = false
|
27
36
|
loop do
|
28
37
|
matched_build, app_version_queried = matching_build(watched_app_version: app_version, watched_build_version: build_version, app_id: app_id, platform: platform, select_latest: select_latest)
|
@@ -53,6 +62,9 @@ module FastlaneCore
|
|
53
62
|
end
|
54
63
|
end
|
55
64
|
|
65
|
+
# Before next poll, force stop build watching, if we exceeded the 'timeout_duration' waiting time
|
66
|
+
force_stop_build_watching_if_required(start_time: build_watching_start_time, timeout_duration: timeout_duration)
|
67
|
+
|
56
68
|
sleep(poll_interval)
|
57
69
|
end
|
58
70
|
end
|
@@ -78,6 +90,16 @@ module FastlaneCore
|
|
78
90
|
watched_app_version_alternate = alternate_version(watched_app_version)
|
79
91
|
versions = [watched_app_version, watched_app_version_alternate].compact
|
80
92
|
|
93
|
+
if versions.empty?
|
94
|
+
if select_latest
|
95
|
+
UI.message("Watched build version should not be present when there is no app version to watch") unless watched_build_version.nil?
|
96
|
+
UI.message("Searching for the latest build")
|
97
|
+
versions = [nil]
|
98
|
+
else
|
99
|
+
raise BuildWatcherError.new, "There is no app version to watch"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
81
103
|
version_matches = versions.map do |version|
|
82
104
|
match = VersionMatches.new
|
83
105
|
match.version = version
|
@@ -98,8 +120,8 @@ module FastlaneCore
|
|
98
120
|
error_builds = matched_builds.map do |build|
|
99
121
|
"#{build.app_version}(#{build.version}) for #{build.platform} - #{build.processing_state}"
|
100
122
|
end.join("\n")
|
101
|
-
error_message = "
|
102
|
-
|
123
|
+
error_message = "Found more than 1 matching build: \n#{error_builds}"
|
124
|
+
raise BuildWatcherError.new, error_message
|
103
125
|
end
|
104
126
|
|
105
127
|
version_match = version_matches.reject do |match|
|
@@ -132,6 +154,20 @@ module FastlaneCore
|
|
132
154
|
UI.message("Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)")
|
133
155
|
end
|
134
156
|
end
|
157
|
+
|
158
|
+
def force_stop_build_watching_if_required(start_time: nil, timeout_duration: nil)
|
159
|
+
return if start_time.nil? || timeout_duration.nil? # keep watching build for App Store Connect processing
|
160
|
+
|
161
|
+
current_time = Time.new
|
162
|
+
end_time = start_time + timeout_duration
|
163
|
+
pending_duration = end_time - current_time
|
164
|
+
|
165
|
+
if current_time > end_time
|
166
|
+
UI.crash!("FastlaneCore::BuildWatcher exceeded the '#{timeout_duration.to_i}' seconds, Stopping now!")
|
167
|
+
else
|
168
|
+
UI.verbose("Will timeout watching build after pending #{pending_duration.to_i} seconds around #{end_time}...")
|
169
|
+
end
|
170
|
+
end
|
135
171
|
end
|
136
172
|
end
|
137
173
|
end
|
@@ -30,6 +30,11 @@ module FastlaneCore
|
|
30
30
|
type = option.is_string ? String : nil
|
31
31
|
end
|
32
32
|
|
33
|
+
# OptionParser doesn't like symbol but a symbol and string can be easily cast with `to_sym` and `to_s`
|
34
|
+
if type == Symbol
|
35
|
+
type = String
|
36
|
+
end
|
37
|
+
|
33
38
|
# Boolean is a fastlane thing, it's either TrueClass, or FalseClass, but we won't know
|
34
39
|
# that until runtime, so nil is the best we get
|
35
40
|
if type == Fastlane::Boolean
|
@@ -262,6 +262,8 @@ module FastlaneCore
|
|
262
262
|
return value.to_i if value.to_i.to_s == value.to_s
|
263
263
|
elsif data_type == Float
|
264
264
|
return value.to_f if value.to_f.to_s == value.to_s
|
265
|
+
elsif data_type == Symbol
|
266
|
+
return value.to_sym if value.to_sym.to_s == value.to_s
|
265
267
|
elsif allow_shell_conversion
|
266
268
|
return value.shelljoin if value.kind_of?(Array)
|
267
269
|
return value.map { |k, v| "#{k.to_s.shellescape}=#{v.shellescape}" }.join(' ') if value.kind_of?(Hash)
|
@@ -212,7 +212,7 @@ module FastlaneCore
|
|
212
212
|
# if 'force_ask' is true, the option is not required to be optional to ask
|
213
213
|
# rubocop:disable Metrics/PerceivedComplexity
|
214
214
|
def fetch(key, ask: true, force_ask: false)
|
215
|
-
UI.crash!("Key '#{key}' must be a symbol. Example
|
215
|
+
UI.crash!("Key '#{key}' must be a symbol. Example :#{key}") unless key.kind_of?(Symbol)
|
216
216
|
|
217
217
|
option = verify_options_key!(key)
|
218
218
|
|
@@ -118,7 +118,7 @@ module FastlaneCore
|
|
118
118
|
discover_devices(child_item, device_types, discovered_device_udids)
|
119
119
|
end
|
120
120
|
|
121
|
-
is_supported_device = device_types.any?
|
121
|
+
is_supported_device = device_types.any?(usb_item['_name'])
|
122
122
|
serial_num = usb_item['serial_num'] || ''
|
123
123
|
has_serial_number = serial_num.length == 40 || serial_num.length == 24
|
124
124
|
|
@@ -167,11 +167,11 @@ module FastlaneCore
|
|
167
167
|
@xcode_version
|
168
168
|
end
|
169
169
|
|
170
|
-
# @return true if Xcode version is
|
170
|
+
# @return true if installed Xcode version is 'greater than or equal to' the input parameter version
|
171
171
|
def self.xcode_at_least?(version)
|
172
|
-
|
173
|
-
|
174
|
-
Gem::Version.new(
|
172
|
+
installed_xcode_version = xcode_version
|
173
|
+
UI.user_error!("Unable to locate Xcode. Please make sure to have Xcode installed on your machine") if installed_xcode_version.nil?
|
174
|
+
Gem::Version.new(installed_xcode_version) >= Gem::Version.new(version)
|
175
175
|
end
|
176
176
|
|
177
177
|
# iTMSTransporter
|
@@ -3,7 +3,7 @@ module FastlaneCore
|
|
3
3
|
# These are all the languages which are available to use to upload app metadata and screenshots
|
4
4
|
|
5
5
|
# The old format which was used until August 2015 (good old times)
|
6
|
-
ALL_LANGUAGES_LEGACY = [
|
6
|
+
ALL_LANGUAGES_LEGACY = %w[da-DK de-DE el-GR en-AU en-CA en-GB en-US es-ES es-MX fi-FI fr-CA fr-FR id-ID it-IT ja-JP ko-KR ms-MY nl-NL no-NO pt-BR pt-PT ru-RU sv-SE th-TH tr-TR vi-VI cmn-Hans cmn-Hant]
|
7
7
|
|
8
8
|
# The new format used from September 2015 on
|
9
9
|
# This was generated from `Spaceship::Tunes.client.available_languages.sort`
|
@@ -11,6 +11,6 @@ module FastlaneCore
|
|
11
11
|
# - produce/lib/produce/available_default_languages.rb
|
12
12
|
# - spaceship/lib/assets/languageMapping.json
|
13
13
|
# See pull request for example: https://github.com/fastlane/fastlane/pull/14110
|
14
|
-
ALL_LANGUAGES = [
|
14
|
+
ALL_LANGUAGES = %w[ar-SA ca cs da de-DE el en-AU en-CA en-GB en-US es-ES es-MX fi fr-CA fr-FR he hi hr hu id it ja ko ms nl-NL no pl pt-BR pt-PT ro ru sk sv th tr uk vi zh-Hans zh-Hant]
|
15
15
|
end
|
16
16
|
end
|