fastlane 2.192.0 → 2.193.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 +84 -84
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +3 -1
- data/fastlane/lib/fastlane/actions/zip.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +20 -8
- 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/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 +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +2 -2
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +25 -6
- data/match/lib/match/runner.rb +5 -5
- data/match/lib/match/storage/.git_storage.rb.swp +0 -0
- data/match/lib/match/storage/.interface.rb.swp +0 -0
- data/pilot/lib/pilot/build_manager.rb +14 -3
- data/pilot/lib/pilot/manager.rb +3 -1
- data/pilot/lib/pilot/options.rb +20 -1
- data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
- metadata +23 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 599ea65ab3c0831e81c0a657ecca5362ade26af48cd9818943315dd956d161df
|
4
|
+
data.tar.gz: d818284a88b0e792b650e2ef26acf045a7415ca2f44015a21b3c69a0d53dbc00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b9fdbf6f24a19127e1b1a831256e4d9b6ebe0fa3929acdba9279e2c994200112ffb5dcfd04b85f274bc6d36be255d92edc2815e35d786c98fa3f7c05a9ff4ad
|
7
|
+
data.tar.gz: 34af6c765f4997ad611331d577de9575daaadc06f1e738c51603b0a4029da9bac656db2a2e67aae6b5da723e6c5bf666d57cc0b11a23e6348a168ea0773c1c3c
|
data/README.md
CHANGED
@@ -35,29 +35,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
35
35
|
<!-- This table is regenerated and resorted on each release -->
|
36
36
|
<table id='team'>
|
37
37
|
<tr>
|
38
|
-
<td id='
|
39
|
-
<a href='https://github.com/
|
40
|
-
<img src='https://github.com/
|
41
|
-
</a>
|
42
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
43
|
-
</td>
|
44
|
-
<td id='maksym-grebenets'>
|
45
|
-
<a href='https://github.com/mgrebenets'>
|
46
|
-
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
38
|
+
<td id='roger-oba'>
|
39
|
+
<a href='https://github.com/rogerluan'>
|
40
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
47
41
|
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
42
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
49
43
|
</td>
|
50
|
-
<td id='
|
51
|
-
<a href='https://github.com/
|
52
|
-
<img src='https://github.com/
|
44
|
+
<td id='helmut-januschka'>
|
45
|
+
<a href='https://github.com/hjanuschka'>
|
46
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
53
47
|
</a>
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
48
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
55
49
|
</td>
|
56
|
-
<td id='
|
57
|
-
<a href='https://github.com/
|
58
|
-
<img src='https://github.com/
|
50
|
+
<td id='manish-rathi'>
|
51
|
+
<a href='https://github.com/crazymanish'>
|
52
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
59
53
|
</a>
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
54
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
61
55
|
</td>
|
62
56
|
<td id='jorge-revuelta-h'>
|
63
57
|
<a href='https://github.com/minuscorp'>
|
@@ -65,37 +59,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
65
59
|
</a>
|
66
60
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
67
61
|
</td>
|
62
|
+
<td id='jimmy-dee'>
|
63
|
+
<a href='https://github.com/jdee'>
|
64
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
65
|
+
</a>
|
66
|
+
<h4 align='center'>Jimmy Dee</h4>
|
67
|
+
</td>
|
68
68
|
</tr>
|
69
69
|
<tr>
|
70
|
-
<td id='
|
71
|
-
<a href='https://github.com/
|
72
|
-
<img src='https://github.com/
|
70
|
+
<td id='danielle-tomlinson'>
|
71
|
+
<a href='https://github.com/endocrimes'>
|
72
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
73
73
|
</a>
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
74
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
75
75
|
</td>
|
76
|
-
<td id='
|
77
|
-
<a href='https://github.com/
|
78
|
-
<img src='https://github.com/
|
76
|
+
<td id='felix-krause'>
|
77
|
+
<a href='https://github.com/KrauseFx'>
|
78
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
79
79
|
</a>
|
80
|
-
<h4 align='center'><a href='https://twitter.com/
|
80
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
81
81
|
</td>
|
82
|
-
<td id='
|
83
|
-
<a href='https://github.com/
|
84
|
-
<img src='https://github.com/
|
82
|
+
<td id='andrew-mcburney'>
|
83
|
+
<a href='https://github.com/armcburney'>
|
84
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
85
85
|
</a>
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
86
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
87
87
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
88
|
+
<td id='aaron-brager'>
|
89
|
+
<a href='https://github.com/getaaron'>
|
90
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
91
91
|
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
92
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
93
93
|
</td>
|
94
|
-
<td id='
|
95
|
-
<a href='https://github.com/
|
96
|
-
<img src='https://github.com/
|
94
|
+
<td id='satoshi-namai'>
|
95
|
+
<a href='https://github.com/ainame'>
|
96
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
97
97
|
</a>
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
98
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
99
99
|
</td>
|
100
100
|
</tr>
|
101
101
|
<tr>
|
@@ -105,23 +105,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
105
105
|
</a>
|
106
106
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
107
107
|
</td>
|
108
|
-
<td id='
|
109
|
-
<a href='https://github.com/
|
110
|
-
<img src='https://github.com/
|
111
|
-
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
113
|
-
</td>
|
114
|
-
<td id='jérôme-lacoste'>
|
115
|
-
<a href='https://github.com/lacostej'>
|
116
|
-
<img src='https://github.com/lacostej.png' width='140px;'>
|
117
|
-
</a>
|
118
|
-
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
119
|
-
</td>
|
120
|
-
<td id='matthew-ellis'>
|
121
|
-
<a href='https://github.com/matthewellis'>
|
122
|
-
<img src='https://github.com/matthewellis.png' width='140px;'>
|
108
|
+
<td id='jan-piotrowski'>
|
109
|
+
<a href='https://github.com/janpio'>
|
110
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
123
111
|
</a>
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
112
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
125
113
|
</td>
|
126
114
|
<td id='fumiya-nakamura'>
|
127
115
|
<a href='https://github.com/nafu'>
|
@@ -129,37 +117,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
129
117
|
</a>
|
130
118
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
131
119
|
</td>
|
132
|
-
|
133
|
-
<
|
134
|
-
<
|
135
|
-
<a href='https://github.com/endocrimes'>
|
136
|
-
<img src='https://github.com/endocrimes.png' width='140px;'>
|
120
|
+
<td id='maksym-grebenets'>
|
121
|
+
<a href='https://github.com/mgrebenets'>
|
122
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
137
123
|
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
124
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
139
125
|
</td>
|
140
|
-
<td id='
|
141
|
-
<a href='https://github.com/
|
142
|
-
<img src='https://github.com/
|
126
|
+
<td id='kohki-miki'>
|
127
|
+
<a href='https://github.com/giginet'>
|
128
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
143
129
|
</a>
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
130
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
145
131
|
</td>
|
132
|
+
</tr>
|
133
|
+
<tr>
|
146
134
|
<td id='iulian-onofrei'>
|
147
135
|
<a href='https://github.com/revolter'>
|
148
136
|
<img src='https://github.com/revolter.png' width='140px;'>
|
149
137
|
</a>
|
150
138
|
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
151
139
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
140
|
+
<td id='matthew-ellis'>
|
141
|
+
<a href='https://github.com/matthewellis'>
|
142
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
155
143
|
</a>
|
156
|
-
<h4 align='center'>
|
144
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
157
145
|
</td>
|
158
|
-
<td id='
|
159
|
-
<a href='https://github.com/
|
160
|
-
<img src='https://github.com/
|
146
|
+
<td id='stefan-natchev'>
|
147
|
+
<a href='https://github.com/snatchev'>
|
148
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
161
149
|
</a>
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
150
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
151
|
+
</td>
|
152
|
+
<td id='olivier-halligon'>
|
153
|
+
<a href='https://github.com/AliSoftware'>
|
154
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
155
|
+
</a>
|
156
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
157
|
+
</td>
|
158
|
+
<td id='jérôme-lacoste'>
|
159
|
+
<a href='https://github.com/lacostej'>
|
160
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
161
|
+
</a>
|
162
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
163
163
|
</td>
|
164
164
|
</tr>
|
165
165
|
<tr>
|
@@ -169,23 +169,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
169
169
|
</a>
|
170
170
|
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
171
171
|
</td>
|
172
|
-
<td id='
|
173
|
-
<a href='https://github.com/
|
174
|
-
<img src='https://github.com/
|
172
|
+
<td id='joshua-liebowitz'>
|
173
|
+
<a href='https://github.com/taquitos'>
|
174
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
175
175
|
</a>
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
176
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
177
177
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
178
|
+
<td id='luka-mirosevic'>
|
179
|
+
<a href='https://github.com/lmirosevic'>
|
180
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
181
181
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
182
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
183
183
|
</td>
|
184
|
-
<td id='
|
185
|
-
<a href='https://github.com/
|
186
|
-
<img src='https://github.com/
|
184
|
+
<td id='manu-wallner'>
|
185
|
+
<a href='https://github.com/milch'>
|
186
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
187
187
|
</a>
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
188
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
189
189
|
</td>
|
190
190
|
<td id='josh-holtz'>
|
191
191
|
<a href='https://github.com/joshdholtz'>
|
@@ -64,7 +64,7 @@ module Fastlane
|
|
64
64
|
['SIGH_PROFILE_PATHS', 'Paths in which certificates, key and profile are exported'],
|
65
65
|
['SIGH_UUID', 'UUID (Universally Unique IDentifier) of a provisioning profile'],
|
66
66
|
['SIGH_NAME', 'The name of the profile'],
|
67
|
-
['SIGH_PROFILE_TYPE', 'The profile type, can be
|
67
|
+
['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in `build_app` as a default value for `export_method`']
|
68
68
|
]
|
69
69
|
end
|
70
70
|
|
@@ -82,7 +82,7 @@ module Fastlane
|
|
82
82
|
def self.output
|
83
83
|
[
|
84
84
|
['MATCH_PROVISIONING_PROFILE_MAPPING', 'The match provisioning profile mapping'],
|
85
|
-
['SIGH_PROFILE_TYPE', 'The profile type, can be
|
85
|
+
['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, can be used in `build_app` as a default value for `export_method`']
|
86
86
|
]
|
87
87
|
end
|
88
88
|
|
@@ -13,6 +13,8 @@ module Fastlane
|
|
13
13
|
unless distribute_only
|
14
14
|
values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
|
15
15
|
values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
|
16
|
+
values[:pkg] ||= Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
|
17
|
+
values[:pkg] = File.expand_path(values[:pkg]) if values[:pkg]
|
16
18
|
end
|
17
19
|
|
18
20
|
# Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
|
@@ -117,7 +119,7 @@ module Fastlane
|
|
117
119
|
end
|
118
120
|
|
119
121
|
def self.is_supported?(platform)
|
120
|
-
[:ios].include?(platform)
|
122
|
+
[:ios, :mac, :tvos].include?(platform)
|
121
123
|
end
|
122
124
|
end
|
123
125
|
end
|
@@ -10,8 +10,8 @@ module Fastlane
|
|
10
10
|
@verbose = params[:verbose]
|
11
11
|
@password = params[:password]
|
12
12
|
@symlinks = params[:symlinks]
|
13
|
-
@include = params[:include]
|
14
|
-
@exclude = params[:exclude]
|
13
|
+
@include = params[:include] || []
|
14
|
+
@exclude = params[:exclude] || []
|
15
15
|
|
16
16
|
@output_path += ".zip" unless @output_path.end_with?(".zip")
|
17
17
|
end
|
@@ -7508,6 +7508,7 @@ public func pem(development: OptionalConfigValue<Bool> = .fastlaneDefault(false)
|
|
7508
7508
|
- appPlatform: The platform to use (optional)
|
7509
7509
|
- appleId: Apple ID property in the App Information section in App Store Connect
|
7510
7510
|
- ipa: Path to the ipa file to upload
|
7511
|
+
- pkg: Path to your pkg file
|
7511
7512
|
- demoAccountRequired: Do you need a demo account when Apple does review?
|
7512
7513
|
- betaAppReviewInfo: Beta app review information for contact info and demo account
|
7513
7514
|
- localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
|
@@ -7546,9 +7547,10 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7546
7547
|
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
7547
7548
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7548
7549
|
appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7549
|
-
appPlatform: String =
|
7550
|
+
appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7550
7551
|
appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7551
7552
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7553
|
+
pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
7552
7554
|
demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
7553
7555
|
betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
7554
7556
|
localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
@@ -7584,9 +7586,10 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7584
7586
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
7585
7587
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
7586
7588
|
let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
|
7587
|
-
let appPlatformArg =
|
7589
|
+
let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
|
7588
7590
|
let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
|
7589
7591
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
7592
|
+
let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
|
7590
7593
|
let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
|
7591
7594
|
let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
|
7592
7595
|
let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
|
@@ -7624,6 +7627,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
|
|
7624
7627
|
appPlatformArg,
|
7625
7628
|
appleIdArg,
|
7626
7629
|
ipaArg,
|
7630
|
+
pkgArg,
|
7627
7631
|
demoAccountRequiredArg,
|
7628
7632
|
betaAppReviewInfoArg,
|
7629
7633
|
localizedAppInfoArg,
|
@@ -11190,6 +11194,7 @@ public func testfairy(apiKey: String,
|
|
11190
11194
|
- appPlatform: The platform to use (optional)
|
11191
11195
|
- appleId: Apple ID property in the App Information section in App Store Connect
|
11192
11196
|
- ipa: Path to the ipa file to upload
|
11197
|
+
- pkg: Path to your pkg file
|
11193
11198
|
- demoAccountRequired: Do you need a demo account when Apple does review?
|
11194
11199
|
- betaAppReviewInfo: Beta app review information for contact info and demo account
|
11195
11200
|
- localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
|
@@ -11228,9 +11233,10 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11228
11233
|
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
11229
11234
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11230
11235
|
appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11231
|
-
appPlatform: String =
|
11236
|
+
appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11232
11237
|
appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11233
11238
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11239
|
+
pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11234
11240
|
demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
11235
11241
|
betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
11236
11242
|
localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
@@ -11266,9 +11272,10 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11266
11272
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
11267
11273
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
11268
11274
|
let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
|
11269
|
-
let appPlatformArg =
|
11275
|
+
let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
|
11270
11276
|
let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
|
11271
11277
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
11278
|
+
let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
|
11272
11279
|
let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
|
11273
11280
|
let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
|
11274
11281
|
let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
|
@@ -11306,6 +11313,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11306
11313
|
appPlatformArg,
|
11307
11314
|
appleIdArg,
|
11308
11315
|
ipaArg,
|
11316
|
+
pkgArg,
|
11309
11317
|
demoAccountRequiredArg,
|
11310
11318
|
betaAppReviewInfoArg,
|
11311
11319
|
localizedAppInfoArg,
|
@@ -12526,6 +12534,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
|
|
12526
12534
|
- appPlatform: The platform to use (optional)
|
12527
12535
|
- appleId: Apple ID property in the App Information section in App Store Connect
|
12528
12536
|
- ipa: Path to the ipa file to upload
|
12537
|
+
- pkg: Path to your pkg file
|
12529
12538
|
- demoAccountRequired: Do you need a demo account when Apple does review?
|
12530
12539
|
- betaAppReviewInfo: Beta app review information for contact info and demo account
|
12531
12540
|
- localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
|
@@ -12564,9 +12573,10 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12564
12573
|
apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
12565
12574
|
username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12566
12575
|
appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12567
|
-
appPlatform: String =
|
12576
|
+
appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12568
12577
|
appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12569
12578
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12579
|
+
pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
12570
12580
|
demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
|
12571
12581
|
betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
12572
12582
|
localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
|
@@ -12602,9 +12612,10 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12602
12612
|
let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
|
12603
12613
|
let usernameArg = username.asRubyArgument(name: "username", type: nil)
|
12604
12614
|
let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
|
12605
|
-
let appPlatformArg =
|
12615
|
+
let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
|
12606
12616
|
let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
|
12607
12617
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
12618
|
+
let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
|
12608
12619
|
let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
|
12609
12620
|
let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
|
12610
12621
|
let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
|
@@ -12642,6 +12653,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
|
|
12642
12653
|
appPlatformArg,
|
12643
12654
|
appleIdArg,
|
12644
12655
|
ipaArg,
|
12656
|
+
pkgArg,
|
12645
12657
|
demoAccountRequiredArg,
|
12646
12658
|
betaAppReviewInfoArg,
|
12647
12659
|
localizedAppInfoArg,
|
@@ -13049,7 +13061,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
|
13049
13061
|
coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13050
13062
|
coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13051
13063
|
xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13052
|
-
ideFoundationPath: String = "/Applications/Xcode-
|
13064
|
+
ideFoundationPath: String = "/Applications/Xcode-beta.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
13053
13065
|
legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
13054
13066
|
{
|
13055
13067
|
let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
|
@@ -13251,4 +13263,4 @@ public let snapshotfile = Snapshotfile()
|
|
13251
13263
|
|
13252
13264
|
// Please don't remove the lines below
|
13253
13265
|
// They are used to detect outdated files
|
13254
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13266
|
+
// FastlaneRunnerAPIVersion [0.9.134]
|
@@ -43,9 +43,9 @@
|
|
43
43
|
"macOS": "10.15.7"
|
44
44
|
},
|
45
45
|
"big_sur": {
|
46
|
-
"HOMEBREW_VERSION": "3.2.
|
46
|
+
"HOMEBREW_VERSION": "3.2.10-18-g7d56615",
|
47
47
|
"HOMEBREW_PREFIX": "/opt/homebrew",
|
48
|
-
"Homebrew/homebrew-core": "
|
48
|
+
"Homebrew/homebrew-core": "17ef60082350d5eea95728f146863b767e2257f2",
|
49
49
|
"CLT": "12.5.1.0.1.1623191612",
|
50
50
|
"Xcode": "13.0",
|
51
51
|
"macOS": "11.5.2"
|
@@ -11,7 +11,7 @@ module FastlaneCore
|
|
11
11
|
|
12
12
|
class << self
|
13
13
|
# @return The build we waited for. This method will always return a build
|
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)
|
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, wait_for_build_beta_detail_processing: false)
|
15
15
|
# Warn about train_version being removed in the future
|
16
16
|
if train_version
|
17
17
|
UI.deprecated(":train_version is no longer a used argument on FastlaneCore::BuildWatcher. Please use :app_version instead.")
|
@@ -41,13 +41,13 @@ module FastlaneCore
|
|
41
41
|
showed_info = true
|
42
42
|
end
|
43
43
|
|
44
|
-
report_status(build: matched_build)
|
44
|
+
report_status(build: matched_build, wait_for_build_beta_detail_processing: wait_for_build_beta_detail_processing)
|
45
45
|
|
46
46
|
# Processing of builds by AppStoreConnect can be a very time consuming task and will
|
47
47
|
# block the worker running this task until it is completed. In some cases,
|
48
48
|
# having a build resource appear in AppStoreConnect (matched_build) may be enough (i.e. setting a changelog)
|
49
49
|
# so here we may choose to skip the full processing of the build if return_when_build_appears is true
|
50
|
-
if matched_build && (return_when_build_appears ||
|
50
|
+
if matched_build && (return_when_build_appears || processed?(build: matched_build, wait_for_build_beta_detail_processing: wait_for_build_beta_detail_processing))
|
51
51
|
|
52
52
|
if !app_version.nil? && app_version != app_version_queried
|
53
53
|
UI.important("App version is #{app_version} but build was found while querying #{app_version_queried}")
|
@@ -145,10 +145,29 @@ module FastlaneCore
|
|
145
145
|
return nil
|
146
146
|
end
|
147
147
|
|
148
|
-
def
|
149
|
-
|
148
|
+
def processed?(build: nil, wait_for_build_beta_detail_processing: false)
|
149
|
+
return false unless build
|
150
|
+
|
151
|
+
is_processed = build.processed?
|
152
|
+
|
153
|
+
# App Store Connect API has multiple build processing states
|
154
|
+
# builds have one processing status
|
155
|
+
# buildBetaDetails have two processing statues (internal and external testing)
|
156
|
+
#
|
157
|
+
# If set, this method will only return true if all three statuses are complete
|
158
|
+
if wait_for_build_beta_detail_processing
|
159
|
+
is_processed &&= build.build_beta_detail.processed?
|
160
|
+
end
|
161
|
+
|
162
|
+
return is_processed
|
163
|
+
end
|
164
|
+
|
165
|
+
def report_status(build: nil, wait_for_build_beta_detail_processing: false)
|
166
|
+
is_processed = processed?(build: build, wait_for_build_beta_detail_processing: wait_for_build_beta_detail_processing)
|
167
|
+
|
168
|
+
if build && !is_processed
|
150
169
|
UI.message("Waiting for App Store Connect to finish processing the new build (#{build.app_version} - #{build.version}) for #{build.platform}")
|
151
|
-
elsif build &&
|
170
|
+
elsif build && is_processed
|
152
171
|
UI.success("Successfully finished processing the build #{build.app_version} - #{build.version} for #{build.platform}")
|
153
172
|
else
|
154
173
|
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)")
|
data/match/lib/match/runner.rb
CHANGED
@@ -191,12 +191,12 @@ module Match
|
|
191
191
|
UI.verbose("Certificate '#{File.basename(cert_path)}' is already installed on this machine")
|
192
192
|
else
|
193
193
|
Utils.import(cert_path, params[:keychain_name], password: params[:keychain_password])
|
194
|
-
end
|
195
194
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
195
|
+
# Import the private key
|
196
|
+
# there seems to be no good way to check if it's already installed - so just install it
|
197
|
+
# Key will only be added to the partition list if it isn't already installed
|
198
|
+
Utils.import(keys.last, params[:keychain_name], password: params[:keychain_password])
|
199
|
+
end
|
200
200
|
else
|
201
201
|
UI.message("Skipping installation of certificate as it would not work on this operating system.")
|
202
202
|
end
|
Binary file
|
Binary file
|
@@ -16,7 +16,7 @@ module Pilot
|
|
16
16
|
should_login_in_start = options[:apple_id].nil?
|
17
17
|
start(options, should_login: should_login_in_start)
|
18
18
|
|
19
|
-
UI.user_error!("No ipa file given")
|
19
|
+
UI.user_error!("No ipa or pkg file given") if config[:ipa].nil? && config[:pkg].nil?
|
20
20
|
|
21
21
|
check_for_changelog_or_whats_new!(options)
|
22
22
|
|
@@ -25,10 +25,17 @@ module Pilot
|
|
25
25
|
dir = Dir.mktmpdir
|
26
26
|
|
27
27
|
platform = fetch_app_platform
|
28
|
-
|
28
|
+
if options[:ipa]
|
29
|
+
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: fetch_app_id,
|
29
30
|
ipa_path: options[:ipa],
|
30
31
|
package_path: dir,
|
31
32
|
platform: platform)
|
33
|
+
else
|
34
|
+
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(app_id: fetch_app_id,
|
35
|
+
pkg_path: options[:pkg],
|
36
|
+
package_path: dir,
|
37
|
+
platform: platform)
|
38
|
+
end
|
32
39
|
|
33
40
|
transporter = transporter_for_selected_team(options)
|
34
41
|
result = transporter.upload(package_path: package_path)
|
@@ -94,6 +101,9 @@ module Pilot
|
|
94
101
|
if config[:ipa]
|
95
102
|
app_version = FastlaneCore::IpaFileAnalyser.fetch_app_version(config[:ipa])
|
96
103
|
app_build = FastlaneCore::IpaFileAnalyser.fetch_app_build(config[:ipa])
|
104
|
+
elsif config[:pkg]
|
105
|
+
app_version = FastlaneCore::PkgFileAnalyser.fetch_app_version(config[:pkg])
|
106
|
+
app_build = FastlaneCore::PkgFileAnalyser.fetch_app_build(config[:pkg])
|
97
107
|
else
|
98
108
|
app_version = config[:app_version]
|
99
109
|
app_build = config[:build_number]
|
@@ -108,7 +118,8 @@ module Pilot
|
|
108
118
|
timeout_duration: config[:wait_processing_timeout_duration],
|
109
119
|
return_when_build_appears: return_when_build_appears,
|
110
120
|
return_spaceship_testflight_build: false,
|
111
|
-
select_latest: config[:distribute_only]
|
121
|
+
select_latest: config[:distribute_only],
|
122
|
+
wait_for_build_beta_detail_processing: true
|
112
123
|
)
|
113
124
|
|
114
125
|
unless latest_build.app_version == app_version && latest_build.version == app_build
|
data/pilot/lib/pilot/manager.rb
CHANGED
@@ -73,7 +73,8 @@ module Pilot
|
|
73
73
|
|
74
74
|
def fetch_app_identifier
|
75
75
|
result = config[:app_identifier]
|
76
|
-
result ||= FastlaneCore::IpaFileAnalyser.fetch_app_identifier(config[:ipa])
|
76
|
+
result ||= FastlaneCore::IpaFileAnalyser.fetch_app_identifier(config[:ipa]) if config[:ipa]
|
77
|
+
result ||= FastlaneCore::PkgFileAnalyser.fetch_app_identifier(config[:pkg]) if config[:pkg]
|
77
78
|
result ||= UI.input("Please enter the app's bundle identifier: ")
|
78
79
|
UI.verbose("App identifier (#{result})")
|
79
80
|
return result
|
@@ -82,6 +83,7 @@ module Pilot
|
|
82
83
|
def fetch_app_platform(required: true)
|
83
84
|
result = config[:app_platform]
|
84
85
|
result ||= FastlaneCore::IpaFileAnalyser.fetch_app_platform(config[:ipa]) if config[:ipa]
|
86
|
+
result ||= FastlaneCore::PkgFileAnalyser.fetch_app_platform(config[:pkg]) if config[:pkg]
|
85
87
|
if required
|
86
88
|
result ||= UI.input("Please enter the app's platform (appletvos, ios, osx): ")
|
87
89
|
UI.user_error!("App Platform must be ios, appletvos, or osx") unless ['ios', 'appletvos', 'osx'].include?(result)
|
data/pilot/lib/pilot/options.rb
CHANGED
@@ -48,7 +48,6 @@ module Pilot
|
|
48
48
|
env_name: "PILOT_PLATFORM",
|
49
49
|
description: "The platform to use (optional)",
|
50
50
|
optional: true,
|
51
|
-
default_value: 'ios',
|
52
51
|
verify_block: proc do |value|
|
53
52
|
UI.user_error!("The platform can only be ios, appletvos, or osx") unless ['ios', 'appletvos', 'osx'].include?(value)
|
54
53
|
end),
|
@@ -82,6 +81,26 @@ module Pilot
|
|
82
81
|
value = File.expand_path(value)
|
83
82
|
UI.user_error!("Could not find ipa file at path '#{value}'") unless File.exist?(value)
|
84
83
|
UI.user_error!("'#{value}' doesn't seem to be an ipa file") unless value.end_with?(".ipa")
|
84
|
+
end,
|
85
|
+
conflicting_options: [:pkg],
|
86
|
+
conflict_block: proc do |value|
|
87
|
+
UI.user_error!("You can't use 'ipa' and '#{value.key}' options in one run.")
|
88
|
+
end),
|
89
|
+
FastlaneCore::ConfigItem.new(key: :pkg,
|
90
|
+
short_option: "-P",
|
91
|
+
optional: true,
|
92
|
+
env_name: "PILOT_PKG",
|
93
|
+
description: "Path to your pkg file",
|
94
|
+
code_gen_sensitive: true,
|
95
|
+
default_value: Dir["*.pkg"].sort_by { |x| File.mtime(x) }.last,
|
96
|
+
default_value_dynamic: true,
|
97
|
+
verify_block: proc do |value|
|
98
|
+
UI.user_error!("Could not find pkg file at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
99
|
+
UI.user_error!("'#{value}' doesn't seem to be a pkg file") unless value.end_with?(".pkg")
|
100
|
+
end,
|
101
|
+
conflicting_options: [:ipa],
|
102
|
+
conflict_block: proc do |value|
|
103
|
+
UI.user_error!("You can't use 'pkg' and '#{value.key}' options in one run.")
|
85
104
|
end),
|
86
105
|
|
87
106
|
# app review info
|
@@ -86,6 +86,10 @@ module Spaceship
|
|
86
86
|
return build_beta_detail.nil? == false && build_beta_detail.ready_for_internal_testing?
|
87
87
|
end
|
88
88
|
|
89
|
+
def ready_for_external_testing?
|
90
|
+
return build_beta_detail.nil? == false && build_beta_detail.ready_for_external_testing?
|
91
|
+
end
|
92
|
+
|
89
93
|
def ready_for_beta_submission?
|
90
94
|
raise "No build_beta_detail included" unless build_beta_detail
|
91
95
|
return build_beta_detail.ready_for_beta_submission?
|
@@ -53,6 +53,10 @@ module Spaceship
|
|
53
53
|
return internal_build_state == InternalState::READY_FOR_BETA_TESTING
|
54
54
|
end
|
55
55
|
|
56
|
+
def processed?
|
57
|
+
return internal_build_state != InternalState::PROCESSING && external_build_state != ExternalState::PROCESSING
|
58
|
+
end
|
59
|
+
|
56
60
|
def ready_for_beta_submission?
|
57
61
|
return external_build_state == ExternalState::READY_FOR_BETA_SUBMISSION
|
58
62
|
end
|
metadata
CHANGED
@@ -1,38 +1,38 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.193.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
- Manu Wallner
|
9
|
-
- Jérôme Lacoste
|
10
|
-
- Helmut Januschka
|
11
|
-
- Daniel Jankowski
|
12
|
-
- Satoshi Namai
|
13
|
-
- Joshua Liebowitz
|
14
|
-
- Roger Oba
|
15
|
-
- Josh Holtz
|
16
|
-
- Matthew Ellis
|
17
|
-
- Andrew McBurney
|
7
|
+
- Jimmy Dee
|
18
8
|
- Aaron Brager
|
19
|
-
-
|
9
|
+
- Fumiya Nakamura
|
20
10
|
- Manish Rathi
|
21
|
-
-
|
11
|
+
- Olivier Halligon
|
12
|
+
- Josh Holtz
|
13
|
+
- Andrew McBurney
|
14
|
+
- Danielle Tomlinson
|
22
15
|
- Jorge Revuelta H
|
16
|
+
- Luka Mirosevic
|
17
|
+
- Iulian Onofrei
|
18
|
+
- Matthew Ellis
|
19
|
+
- Helmut Januschka
|
20
|
+
- Jan Piotrowski
|
21
|
+
- Daniel Jankowski
|
22
|
+
- Joshua Liebowitz
|
23
|
+
- Manu Wallner
|
24
|
+
- Jérôme Lacoste
|
23
25
|
- Max Ott
|
26
|
+
- Felix Krause
|
27
|
+
- Stefan Natchev
|
28
|
+
- Satoshi Namai
|
24
29
|
- Maksym Grebenets
|
25
|
-
- Iulian Onofrei
|
26
|
-
- Olivier Halligon
|
27
|
-
- Jimmy Dee
|
28
|
-
- Danielle Tomlinson
|
29
30
|
- Kohki Miki
|
30
|
-
-
|
31
|
-
- Luka Mirosevic
|
31
|
+
- Roger Oba
|
32
32
|
autorequire:
|
33
33
|
bindir: bin
|
34
34
|
cert_chain: []
|
35
|
-
date: 2021-08-
|
35
|
+
date: 2021-08-31 00:00:00.000000000 Z
|
36
36
|
dependencies:
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: xcodeproj
|
@@ -1509,6 +1509,8 @@ files:
|
|
1509
1509
|
- match/lib/match/setup.rb
|
1510
1510
|
- match/lib/match/spaceship_ensure.rb
|
1511
1511
|
- match/lib/match/storage.rb
|
1512
|
+
- match/lib/match/storage/.git_storage.rb.swp
|
1513
|
+
- match/lib/match/storage/.interface.rb.swp
|
1512
1514
|
- match/lib/match/storage/git_storage.rb
|
1513
1515
|
- match/lib/match/storage/google_cloud_storage.rb
|
1514
1516
|
- match/lib/match/storage/interface.rb
|