fastlane 2.212.1 → 2.212.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +92 -92
- data/deliver/lib/deliver/runner.rb +7 -7
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +15 -4
- 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 +2 -2
- 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 +17 -17
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +48 -14
- data/pilot/lib/pilot/build_manager.rb +4 -4
- data/snapshot/lib/snapshot/latest_os_version.rb +2 -5
- data/spaceship/lib/spaceship/connect_api/models/app.rb +2 -2
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +1 -1
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 698222da63360e54a4d41e791a7ab1b2ac9331b348ef8626831d61a7261872de
|
4
|
+
data.tar.gz: c89309b1a27610bd6f51dfad0b471ac908bbec30e981edf7b56485e5f83738f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc46b26354a94f87f630a434fcb0f8387f9d84661da4b01aa9ea72f565a97f864d6fb6f2124a7a9342ae91c3f3c59657452f99c255bf0c418ae5da33d821af32
|
7
|
+
data.tar.gz: 7198cdb4e60bf1c3c5b495307306a2888be696dd924a0e63aae7d787bdbfa5b4468d8a7f661f8fc741b79740801efcc603b32f912d9940a35373ec7230da5bd3
|
data/README.md
CHANGED
@@ -35,17 +35,17 @@ 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/
|
38
|
+
<td id='maksym-grebenets'>
|
39
|
+
<a href='https://github.com/mgrebenets'>
|
40
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
41
41
|
</a>
|
42
|
-
<h4 align='center'><a href='https://twitter.com/
|
42
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
43
43
|
</td>
|
44
|
-
<td id='
|
45
|
-
<a href='https://github.com/
|
46
|
-
<img src='https://github.com/
|
44
|
+
<td id='iulian-onofrei'>
|
45
|
+
<a href='https://github.com/revolter'>
|
46
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
47
47
|
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
48
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
49
49
|
</td>
|
50
50
|
<td id='josh-holtz'>
|
51
51
|
<a href='https://github.com/joshdholtz'>
|
@@ -53,113 +53,113 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
53
53
|
</a>
|
54
54
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
55
55
|
</td>
|
56
|
-
<td id='
|
57
|
-
<a href='https://github.com/
|
58
|
-
<img src='https://github.com/
|
56
|
+
<td id='max-ott'>
|
57
|
+
<a href='https://github.com/max-ott'>
|
58
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
59
59
|
</a>
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
60
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
61
61
|
</td>
|
62
|
-
<td id='
|
63
|
-
<a href='https://github.com/
|
64
|
-
<img src='https://github.com/
|
62
|
+
<td id='olivier-halligon'>
|
63
|
+
<a href='https://github.com/AliSoftware'>
|
64
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
65
65
|
</a>
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
66
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
67
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='matthew-ellis'>
|
71
|
+
<a href='https://github.com/matthewellis'>
|
72
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
73
73
|
</a>
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
74
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
75
75
|
</td>
|
76
|
-
<td id='
|
77
|
-
<a href='https://github.com/
|
78
|
-
<img src='https://github.com/
|
76
|
+
<td id='helmut-januschka'>
|
77
|
+
<a href='https://github.com/hjanuschka'>
|
78
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
79
79
|
</a>
|
80
|
-
<h4 align='center'><a href='https://twitter.com/
|
80
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
81
81
|
</td>
|
82
|
-
<td id='
|
83
|
-
<a href='https://github.com/
|
84
|
-
<img src='https://github.com/
|
82
|
+
<td id='luka-mirosevic'>
|
83
|
+
<a href='https://github.com/lmirosevic'>
|
84
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
85
85
|
</a>
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
86
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
87
87
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
88
|
+
<td id='roger-oba'>
|
89
|
+
<a href='https://github.com/rogerluan'>
|
90
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
91
91
|
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
92
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
93
93
|
</td>
|
94
|
-
<td id='
|
95
|
-
<a href='https://github.com/
|
96
|
-
<img src='https://github.com/
|
94
|
+
<td id='łukasz-grabowski'>
|
95
|
+
<a href='https://github.com/lucgrabowski'>
|
96
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
97
97
|
</a>
|
98
|
-
<h4 align='center'
|
98
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
99
99
|
</td>
|
100
100
|
</tr>
|
101
101
|
<tr>
|
102
|
-
<td id='
|
103
|
-
<a href='https://github.com/
|
104
|
-
<img src='https://github.com/
|
102
|
+
<td id='jan-piotrowski'>
|
103
|
+
<a href='https://github.com/janpio'>
|
104
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
105
105
|
</a>
|
106
|
-
<h4 align='center'><a href='https://twitter.com/
|
106
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
107
107
|
</td>
|
108
|
-
<td id='
|
109
|
-
<a href='https://github.com/
|
110
|
-
<img src='https://github.com/
|
108
|
+
<td id='kohki-miki'>
|
109
|
+
<a href='https://github.com/giginet'>
|
110
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
111
111
|
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
112
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
113
113
|
</td>
|
114
|
-
<td id='
|
115
|
-
<a href='https://github.com/
|
116
|
-
<img src='https://github.com/
|
114
|
+
<td id='aaron-brager'>
|
115
|
+
<a href='https://github.com/getaaron'>
|
116
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
117
117
|
</a>
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
118
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
119
119
|
</td>
|
120
|
-
<td id='
|
121
|
-
<a href='https://github.com/
|
122
|
-
<img src='https://github.com/
|
120
|
+
<td id='daniel-jankowski'>
|
121
|
+
<a href='https://github.com/mollyIV'>
|
122
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
123
123
|
</a>
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
124
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
125
125
|
</td>
|
126
|
-
<td id='
|
127
|
-
<a href='https://github.com/
|
128
|
-
<img src='https://github.com/
|
126
|
+
<td id='jorge-revuelta-h'>
|
127
|
+
<a href='https://github.com/minuscorp'>
|
128
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
129
129
|
</a>
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
130
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
131
131
|
</td>
|
132
132
|
</tr>
|
133
133
|
<tr>
|
134
|
-
<td id='
|
135
|
-
<a href='https://github.com/
|
136
|
-
<img src='https://github.com/
|
134
|
+
<td id='danielle-tomlinson'>
|
135
|
+
<a href='https://github.com/endocrimes'>
|
136
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
137
137
|
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
138
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
139
139
|
</td>
|
140
|
-
<td id='
|
141
|
-
<a href='https://github.com/
|
142
|
-
<img src='https://github.com/
|
140
|
+
<td id='fumiya-nakamura'>
|
141
|
+
<a href='https://github.com/nafu'>
|
142
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
143
143
|
</a>
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
144
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
145
145
|
</td>
|
146
|
-
<td id='
|
147
|
-
<a href='https://github.com/
|
148
|
-
<img src='https://github.com/
|
146
|
+
<td id='felix-krause'>
|
147
|
+
<a href='https://github.com/KrauseFx'>
|
148
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
149
149
|
</a>
|
150
|
-
<h4 align='center'
|
150
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
151
151
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
152
|
+
<td id='satoshi-namai'>
|
153
|
+
<a href='https://github.com/ainame'>
|
154
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
155
155
|
</a>
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
156
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
157
157
|
</td>
|
158
|
-
<td id='
|
159
|
-
<a href='https://github.com/
|
160
|
-
<img src='https://github.com/
|
158
|
+
<td id='stefan-natchev'>
|
159
|
+
<a href='https://github.com/snatchev'>
|
160
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
161
161
|
</a>
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
162
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
163
163
|
</td>
|
164
164
|
</tr>
|
165
165
|
<tr>
|
@@ -175,31 +175,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
175
175
|
</a>
|
176
176
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
177
177
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
178
|
+
<td id='jérôme-lacoste'>
|
179
|
+
<a href='https://github.com/lacostej'>
|
180
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
181
181
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
182
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
183
183
|
</td>
|
184
|
-
<td id='
|
185
|
-
<a href='https://github.com/
|
186
|
-
<img src='https://github.com/
|
184
|
+
<td id='manish-rathi'>
|
185
|
+
<a href='https://github.com/crazymanish'>
|
186
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
187
187
|
</a>
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
188
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
189
189
|
</td>
|
190
|
-
<td id='
|
191
|
-
<a href='https://github.com/
|
192
|
-
<img src='https://github.com/
|
190
|
+
<td id='joshua-liebowitz'>
|
191
|
+
<a href='https://github.com/taquitos'>
|
192
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
193
193
|
</a>
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
194
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
195
195
|
</td>
|
196
196
|
</tr>
|
197
197
|
<tr>
|
198
|
-
<td id='
|
199
|
-
<a href='https://github.com/
|
200
|
-
<img src='https://github.com/
|
198
|
+
<td id='andrew-mcburney'>
|
199
|
+
<a href='https://github.com/armcburney'>
|
200
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
201
201
|
</a>
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
202
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
203
203
|
</td>
|
204
204
|
</table>
|
205
205
|
|
@@ -179,7 +179,7 @@ module Deliver
|
|
179
179
|
package_path: "/tmp",
|
180
180
|
platform: platform
|
181
181
|
)
|
182
|
-
result = transporter.verify(package_path: package_path)
|
182
|
+
result = transporter.verify(package_path: package_path, asset_path: ipa_path, platform: platform)
|
183
183
|
when "osx"
|
184
184
|
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
185
185
|
app_id: Deliver.cache[:app].id,
|
@@ -187,7 +187,7 @@ module Deliver
|
|
187
187
|
package_path: "/tmp",
|
188
188
|
platform: platform
|
189
189
|
)
|
190
|
-
result = transporter.verify(package_path: package_path)
|
190
|
+
result = transporter.verify(package_path: package_path, asset_path: pkg_path, platform: platform)
|
191
191
|
else
|
192
192
|
UI.user_error!("No suitable file found for verify for platform: #{options[:platform]}")
|
193
193
|
end
|
@@ -206,7 +206,7 @@ module Deliver
|
|
206
206
|
pkg_path = options[:pkg]
|
207
207
|
|
208
208
|
platform = options[:platform]
|
209
|
-
transporter = transporter_for_selected_team
|
209
|
+
transporter = transporter_for_selected_team
|
210
210
|
|
211
211
|
case platform
|
212
212
|
when "ios", "appletvos"
|
@@ -266,7 +266,7 @@ module Deliver
|
|
266
266
|
# If itc_provider was explicitly specified, use it.
|
267
267
|
# If there are multiple teams, infer the provider from the selected team name.
|
268
268
|
# If there are fewer than two teams, don't infer the provider.
|
269
|
-
def transporter_for_selected_team
|
269
|
+
def transporter_for_selected_team
|
270
270
|
# Use JWT auth
|
271
271
|
api_token = Spaceship::ConnectAPI.token
|
272
272
|
api_key = if options[:api_key].nil? && !api_token.nil?
|
@@ -281,12 +281,12 @@ module Deliver
|
|
281
281
|
|
282
282
|
unless api_token.nil?
|
283
283
|
api_token.refresh! if api_token.expired?
|
284
|
-
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text,
|
284
|
+
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, altool_compatible_command: true, api_key: api_key)
|
285
285
|
end
|
286
286
|
|
287
287
|
tunes_client = Spaceship::ConnectAPI.client.tunes_client
|
288
288
|
|
289
|
-
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider],
|
289
|
+
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], altool_compatible_command: true, api_key: api_key)
|
290
290
|
return generic_transporter unless options[:itc_provider].nil? && tunes_client.teams.count > 1
|
291
291
|
|
292
292
|
begin
|
@@ -294,7 +294,7 @@ module Deliver
|
|
294
294
|
name = team['name']
|
295
295
|
provider_id = generic_transporter.provider_ids[name]
|
296
296
|
UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
|
297
|
-
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id,
|
297
|
+
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, altool_compatible_command: true, api_key: api_key)
|
298
298
|
rescue => ex
|
299
299
|
UI.verbose("Couldn't infer a provider short name for team with id #{tunes_client.team_id} automatically: #{ex}. Proceeding without provider short name.")
|
300
300
|
return generic_transporter
|
@@ -8,8 +8,9 @@ module Fastlane
|
|
8
8
|
class EnsureGitStatusCleanAction < Action
|
9
9
|
def self.run(params)
|
10
10
|
if params[:ignored]
|
11
|
-
|
12
|
-
|
11
|
+
ignored_mode = params[:ignored]
|
12
|
+
ignored_mode = 'no' if ignored_mode == 'none'
|
13
|
+
repo_status = Actions.sh("git status --porcelain --ignored='#{ignored_mode}'")
|
13
14
|
else
|
14
15
|
repo_status = Actions.sh("git status --porcelain")
|
15
16
|
end
|
@@ -74,8 +75,18 @@ module Fastlane
|
|
74
75
|
type: Boolean),
|
75
76
|
FastlaneCore::ConfigItem.new(key: :ignored,
|
76
77
|
env_name: "FL_ENSURE_GIT_STATUS_CLEAN_IGNORED_FILE",
|
77
|
-
description:
|
78
|
-
|
78
|
+
description: [
|
79
|
+
"The handling mode of the ignored files. The available options are: `'traditional'`, `'none'` (default) and `'matching'`.",
|
80
|
+
"Specifying `'none'` to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not.",
|
81
|
+
"Specifying `'traditional'` or `'matching'` causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt)"
|
82
|
+
].join(" "),
|
83
|
+
optional: true,
|
84
|
+
verify_block: proc do |value|
|
85
|
+
mode = value.to_s
|
86
|
+
modes = %w(traditional none matching)
|
87
|
+
|
88
|
+
UI.user_error!("Unsupported mode, must be: #{modes}") unless modes.include?(mode)
|
89
|
+
end)
|
79
90
|
]
|
80
91
|
end
|
81
92
|
|
@@ -4299,7 +4299,7 @@ public func ensureGitBranch(branch: String = "master") {
|
|
4299
4299
|
- parameters:
|
4300
4300
|
- showUncommittedChanges: The flag whether to show uncommitted changes if the repo is dirty
|
4301
4301
|
- showDiff: The flag whether to show the git diff if the repo is dirty
|
4302
|
-
- ignored: The
|
4302
|
+
- ignored: The handling mode of the ignored files. The available options are: `'traditional'`, `'none'` (default) and `'matching'`. Specifying `'none'` to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying `'traditional'` or `'matching'` causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt)
|
4303
4303
|
|
4304
4304
|
A sanity check to make sure you are working in a repo that is clean.
|
4305
4305
|
Especially useful to put at the beginning of your Fastfile in the `before_all` block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work.
|
@@ -13573,4 +13573,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13573
13573
|
|
13574
13574
|
// Please don't remove the lines below
|
13575
13575
|
// They are used to detect outdated files
|
13576
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13576
|
+
// FastlaneRunnerAPIVersion [0.9.168]
|
@@ -2,45 +2,45 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
5
|
+
"version": "0.51.6",
|
6
6
|
"bottle": {
|
7
7
|
"rebuild": 0,
|
8
8
|
"root_url": "https://ghcr.io/v2/homebrew/core",
|
9
9
|
"files": {
|
10
10
|
"arm64_ventura": {
|
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:71a684a6ccb9892d1382a6682a67db9b6c4e0db50f3e401aeaa4bd9bd2c17870",
|
13
|
+
"sha256": "71a684a6ccb9892d1382a6682a67db9b6c4e0db50f3e401aeaa4bd9bd2c17870"
|
14
14
|
},
|
15
15
|
"arm64_monterey": {
|
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:c7308dba4ff65f6c4b1516ec8ac3c207d38e8b88fedcb29baccdf606748b9b04",
|
18
|
+
"sha256": "c7308dba4ff65f6c4b1516ec8ac3c207d38e8b88fedcb29baccdf606748b9b04"
|
19
19
|
},
|
20
20
|
"arm64_big_sur": {
|
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:b80beeea8dfcce222aa998aae8431455644c607dca36ce9deaa23ba862239dfd",
|
23
|
+
"sha256": "b80beeea8dfcce222aa998aae8431455644c607dca36ce9deaa23ba862239dfd"
|
24
24
|
},
|
25
25
|
"ventura": {
|
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:922f21c82c873425d7bd6064fc7b01c29a6fb9cc327ec0ac2aff6d65944f007c",
|
28
|
+
"sha256": "922f21c82c873425d7bd6064fc7b01c29a6fb9cc327ec0ac2aff6d65944f007c"
|
29
29
|
},
|
30
30
|
"monterey": {
|
31
31
|
"cellar": ":any_skip_relocation",
|
32
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
33
|
-
"sha256": "
|
32
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:b0fa51fd3bff14854aea1c7be41dbecf4b11b229e8133eda6a61cc5b8364c1f3",
|
33
|
+
"sha256": "b0fa51fd3bff14854aea1c7be41dbecf4b11b229e8133eda6a61cc5b8364c1f3"
|
34
34
|
},
|
35
35
|
"big_sur": {
|
36
36
|
"cellar": ":any_skip_relocation",
|
37
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
38
|
-
"sha256": "
|
37
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a27afde79eed546acaf429a8489f9195d6633e21259d9269bab919d32e9b4223",
|
38
|
+
"sha256": "a27afde79eed546acaf429a8489f9195d6633e21259d9269bab919d32e9b4223"
|
39
39
|
},
|
40
40
|
"x86_64_linux": {
|
41
41
|
"cellar": "/home/linuxbrew/.linuxbrew/Cellar",
|
42
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
43
|
-
"sha256": "
|
42
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:306d7ebf95846c3bccc426ee62915b73566ff3ea7e0fc859624c11b0dec817f2",
|
43
|
+
"sha256": "306d7ebf95846c3bccc426ee62915b73566ff3ea7e0fc859624c11b0dec817f2"
|
44
44
|
}
|
45
45
|
}
|
46
46
|
}
|
@@ -74,12 +74,12 @@
|
|
74
74
|
"macOS": "12.5"
|
75
75
|
},
|
76
76
|
"ventura": {
|
77
|
-
"HOMEBREW_VERSION": "4.0.
|
77
|
+
"HOMEBREW_VERSION": "4.0.13-42-gac0663a",
|
78
78
|
"HOMEBREW_PREFIX": "/opt/homebrew",
|
79
79
|
"Homebrew/homebrew-core": "api",
|
80
80
|
"CLT": "",
|
81
81
|
"Xcode": "14.1",
|
82
|
-
"macOS": "13.1"
|
82
|
+
"macOS": "13.2.1"
|
83
83
|
}
|
84
84
|
}
|
85
85
|
}
|
@@ -47,7 +47,7 @@ module FastlaneCore
|
|
47
47
|
not_implemented(__method__)
|
48
48
|
end
|
49
49
|
|
50
|
-
def build_verify_command(username, password, source = "/tmp", provider_short_name = "",
|
50
|
+
def build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs)
|
51
51
|
not_implemented(__method__)
|
52
52
|
end
|
53
53
|
|
@@ -307,8 +307,22 @@ module FastlaneCore
|
|
307
307
|
raise "This feature has not been implemented yet with altool for Xcode 14"
|
308
308
|
end
|
309
309
|
|
310
|
-
def build_verify_command(username, password, source = "/tmp", provider_short_name = "",
|
311
|
-
|
310
|
+
def build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs)
|
311
|
+
api_key = kwargs[:api_key]
|
312
|
+
platform = kwargs[:platform]
|
313
|
+
use_api_key = !api_key.nil?
|
314
|
+
[
|
315
|
+
("API_PRIVATE_KEYS_DIR=#{api_key[:key_dir]}" if use_api_key),
|
316
|
+
"xcrun altool",
|
317
|
+
"--validate-app",
|
318
|
+
("-u #{username.shellescape}" unless use_api_key),
|
319
|
+
("-p #{password.shellescape}" unless use_api_key),
|
320
|
+
("--apiKey #{api_key[:key_id]}" if use_api_key),
|
321
|
+
("--apiIssuer #{api_key[:issuer_id]}" if use_api_key),
|
322
|
+
("--asc-provider #{provider_short_name}" unless use_api_key || provider_short_name.to_s.empty?),
|
323
|
+
platform_option(platform),
|
324
|
+
file_upload_option(source)
|
325
|
+
].compact.join(' ')
|
312
326
|
end
|
313
327
|
|
314
328
|
def additional_upload_parameters
|
@@ -409,7 +423,8 @@ module FastlaneCore
|
|
409
423
|
].compact.join(' ')
|
410
424
|
end
|
411
425
|
|
412
|
-
def build_verify_command(username, password, source = "/tmp", provider_short_name = "",
|
426
|
+
def build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs)
|
427
|
+
jwt = kwargs[:jwt]
|
413
428
|
use_jwt = !jwt.to_s.empty?
|
414
429
|
[
|
415
430
|
'"' + Helper.transporter_path + '"',
|
@@ -504,7 +519,8 @@ module FastlaneCore
|
|
504
519
|
end
|
505
520
|
end
|
506
521
|
|
507
|
-
def build_verify_command(username, password, source = "/tmp", provider_short_name = "",
|
522
|
+
def build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs)
|
523
|
+
jwt = kwargs[:jwt]
|
508
524
|
use_jwt = !jwt.to_s.empty?
|
509
525
|
if !Helper.user_defined_itms_path? && Helper.mac? && Helper.xcode_at_least?(11)
|
510
526
|
[
|
@@ -660,7 +676,7 @@ module FastlaneCore
|
|
660
676
|
# see: https://github.com/fastlane/fastlane/issues/1524#issuecomment-196370628
|
661
677
|
# for more information about how to use the iTMSTransporter to list your provider
|
662
678
|
# short names
|
663
|
-
def initialize(user = nil, password = nil, use_shell_script = false, provider_short_name = nil, jwt = nil,
|
679
|
+
def initialize(user = nil, password = nil, use_shell_script = false, provider_short_name = nil, jwt = nil, altool_compatible_command: false, api_key: nil)
|
664
680
|
# Xcode 6.x doesn't have the same iTMSTransporter Java setup as later Xcode versions, so
|
665
681
|
# we can't default to using the newer direct Java invocation strategy for those versions.
|
666
682
|
use_shell_script ||= Helper.is_mac? && Helper.xcode_version.start_with?('6.')
|
@@ -675,7 +691,7 @@ module FastlaneCore
|
|
675
691
|
@jwt = jwt
|
676
692
|
@api_key = api_key
|
677
693
|
|
678
|
-
if should_use_altool?(
|
694
|
+
if should_use_altool?(altool_compatible_command, use_shell_script)
|
679
695
|
UI.verbose("Using altool as transporter.")
|
680
696
|
@transporter_executor = AltoolTransporterExecutor.new
|
681
697
|
else
|
@@ -800,10 +816,20 @@ module FastlaneCore
|
|
800
816
|
# @return (Bool) True if everything worked fine
|
801
817
|
# @raise [Deliver::TransporterTransferError] when something went wrong
|
802
818
|
# when transferring
|
803
|
-
def verify(app_id = nil, dir = nil, package_path: nil)
|
804
|
-
raise "
|
819
|
+
def verify(app_id = nil, dir = nil, package_path: nil, asset_path: nil, platform: nil)
|
820
|
+
raise "app_id and dir are required or package_path or asset_path is required" if (app_id.nil? || dir.nil?) && package_path.nil? && asset_path.nil?
|
821
|
+
|
822
|
+
force_itmsp = FastlaneCore::Env.truthy?("ITMSTRANSPORTER_FORCE_ITMS_PACKAGE_UPLOAD")
|
823
|
+
can_use_asset_path = Helper.is_mac? && asset_path
|
805
824
|
|
806
|
-
actual_dir = if
|
825
|
+
actual_dir = if can_use_asset_path && !force_itmsp
|
826
|
+
# The asset gets deleted upon completion so copying to a temp directory
|
827
|
+
# (with randomized filename, for multibyte-mixed filename upload fails)
|
828
|
+
new_file_name = "#{SecureRandom.uuid}#{File.extname(asset_path)}"
|
829
|
+
tmp_asset_path = File.join(Dir.tmpdir, new_file_name)
|
830
|
+
FileUtils.cp(asset_path, tmp_asset_path)
|
831
|
+
tmp_asset_path
|
832
|
+
elsif package_path
|
807
833
|
package_path
|
808
834
|
else
|
809
835
|
File.join(dir, "#{app_id}.itmsp")
|
@@ -812,8 +838,16 @@ module FastlaneCore
|
|
812
838
|
password_placeholder = @jwt.nil? ? 'YourPassword' : nil
|
813
839
|
jwt_placeholder = @jwt.nil? ? nil : 'YourJWT'
|
814
840
|
|
815
|
-
|
816
|
-
|
841
|
+
# Handle AppStore Connect API
|
842
|
+
use_api_key = !@api_key.nil?
|
843
|
+
|
844
|
+
# Masking credentials for verbose outputs
|
845
|
+
api_key_placeholder = use_api_key ? { key_id: "YourKeyID", issuer_id: "YourIssuerID", key_dir: "YourTmpP8KeyDir" } : nil
|
846
|
+
|
847
|
+
api_key = api_key_with_p8_file_path(@api_key) if use_api_key
|
848
|
+
|
849
|
+
command = @transporter_executor.build_verify_command(@user, @password, actual_dir, @provider_short_name, jwt: @jwt, platform: platform, api_key: api_key)
|
850
|
+
UI.verbose(@transporter_executor.build_verify_command(@user, password_placeholder, actual_dir, @provider_short_name, jwt: jwt_placeholder, platform: platform, api_key: api_key_placeholder))
|
817
851
|
|
818
852
|
begin
|
819
853
|
result = @transporter_executor.execute(command, ItunesTransporter.hide_transporter_output?)
|
@@ -883,9 +917,9 @@ module FastlaneCore
|
|
883
917
|
end
|
884
918
|
|
885
919
|
# Returns whether altool should be used or ItunesTransporter should be used
|
886
|
-
def should_use_altool?(
|
920
|
+
def should_use_altool?(altool_compatible_command, use_shell_script)
|
887
921
|
# Xcode 14 no longer supports iTMSTransporter. Use altool instead
|
888
|
-
!use_shell_script &&
|
922
|
+
!use_shell_script && altool_compatible_command && !Helper.user_defined_itms_path? && Helper.mac? && Helper.xcode_at_least?(14)
|
889
923
|
end
|
890
924
|
|
891
925
|
# Returns the password to be used with the transporter
|
@@ -157,7 +157,7 @@ module Pilot
|
|
157
157
|
end
|
158
158
|
end
|
159
159
|
platform = Spaceship::ConnectAPI::Platform.map(fetch_app_platform)
|
160
|
-
build ||= Spaceship::ConnectAPI::Build.all(app_id: app.id, version: app_version, build_number: build_number, sort: "-uploadedDate", platform: platform, limit:
|
160
|
+
build ||= Spaceship::ConnectAPI::Build.all(app_id: app.id, version: app_version, build_number: build_number, sort: "-uploadedDate", platform: platform, limit: Spaceship::ConnectAPI::Platform.size).first
|
161
161
|
end
|
162
162
|
|
163
163
|
# Verify the build has all the includes that we need
|
@@ -401,13 +401,13 @@ module Pilot
|
|
401
401
|
|
402
402
|
unless api_token.nil?
|
403
403
|
api_token.refresh! if api_token.expired?
|
404
|
-
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text,
|
404
|
+
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, altool_compatible_command: true, api_key: api_key)
|
405
405
|
end
|
406
406
|
|
407
407
|
# Otherwise use username and password
|
408
408
|
tunes_client = Spaceship::ConnectAPI.client ? Spaceship::ConnectAPI.client.tunes_client : nil
|
409
409
|
|
410
|
-
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider],
|
410
|
+
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], altool_compatible_command: true, api_key: api_key)
|
411
411
|
return generic_transporter if options[:itc_provider] || tunes_client.nil?
|
412
412
|
return generic_transporter unless tunes_client.teams.count > 1
|
413
413
|
|
@@ -416,7 +416,7 @@ module Pilot
|
|
416
416
|
name = team['name']
|
417
417
|
provider_id = generic_transporter.provider_ids[name]
|
418
418
|
UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
|
419
|
-
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id,
|
419
|
+
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, altool_compatible_command: true, api_key: api_key)
|
420
420
|
rescue => ex
|
421
421
|
STDERR.puts(ex.to_s)
|
422
422
|
UI.verbose("Couldn't infer a provider short name for team with id #{tunes_client.team_id} automatically: #{ex}. Proceeding without provider short name.")
|
@@ -16,12 +16,9 @@ module Snapshot
|
|
16
16
|
def self.version_for_os(os)
|
17
17
|
# We do all this, because we would get all kind of crap output generated by xcodebuild
|
18
18
|
# so we need to ignore stderror
|
19
|
-
|
20
|
-
Open3.popen3('xcodebuild -version -sdk') do |stdin, stdout, stderr, wait_thr|
|
21
|
-
output = stdout.read
|
22
|
-
end
|
19
|
+
stdout, _stderr, _status = Open3.capture3('xcodebuild -version -sdk')
|
23
20
|
|
24
|
-
matched =
|
21
|
+
matched = stdout.match(/#{os} ([\d\.]+) \(.*/)
|
25
22
|
if matched.nil?
|
26
23
|
FastlaneCore::UI.user_error!("Could not determine installed #{os} SDK version. Try running the _xcodebuild_ command manually to ensure it works.")
|
27
24
|
elsif matched.length > 1
|
@@ -54,12 +54,12 @@ module Spaceship
|
|
54
54
|
"contentRightsDeclaration" => "content_rights_declaration",
|
55
55
|
|
56
56
|
"appStoreVersions" => "app_store_versions",
|
57
|
+
# This attribute is already deprecated. It will be removed in a future release.
|
57
58
|
"prices" => "prices"
|
58
59
|
})
|
59
60
|
|
60
61
|
ESSENTIAL_INCLUDES = [
|
61
|
-
"appStoreVersions"
|
62
|
-
"prices"
|
62
|
+
"appStoreVersions"
|
63
63
|
].join(",")
|
64
64
|
|
65
65
|
def self.type
|
@@ -272,7 +272,7 @@ module Spaceship
|
|
272
272
|
# if it needs to
|
273
273
|
#
|
274
274
|
# https://github.com/fastlane/fastlane/pull/20480
|
275
|
-
r = request(:get, "https://appstoreconnect.apple.com/iris/v1/apps?include=appStoreVersions
|
275
|
+
r = request(:get, "https://appstoreconnect.apple.com/iris/v1/apps?include=appStoreVersions")
|
276
276
|
response = Spaceship::ConnectAPI::Response.new(
|
277
277
|
body: r.body,
|
278
278
|
status: r.status,
|
metadata
CHANGED
@@ -1,39 +1,39 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.212.
|
4
|
+
version: 2.212.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
-
|
7
|
+
- Maksym Grebenets
|
8
|
+
- Josh Holtz
|
9
9
|
- Helmut Januschka
|
10
|
-
-
|
11
|
-
- Joshua Liebowitz
|
12
|
-
- Kohki Miki
|
10
|
+
- Manu Wallner
|
13
11
|
- Jimmy Dee
|
14
|
-
-
|
12
|
+
- Jérôme Lacoste
|
15
13
|
- Andrew McBurney
|
16
|
-
-
|
17
|
-
- Josh Holtz
|
14
|
+
- Jorge Revuelta H
|
18
15
|
- Fumiya Nakamura
|
19
|
-
-
|
16
|
+
- Olivier Halligon
|
17
|
+
- Matthew Ellis
|
18
|
+
- Aaron Brager
|
19
|
+
- Satoshi Namai
|
20
20
|
- Łukasz Grabowski
|
21
|
-
-
|
21
|
+
- Joshua Liebowitz
|
22
22
|
- Felix Krause
|
23
|
-
-
|
23
|
+
- Jan Piotrowski
|
24
|
+
- Manish Rathi
|
25
|
+
- Kohki Miki
|
24
26
|
- Max Ott
|
25
|
-
- Manu Wallner
|
26
|
-
- Aaron Brager
|
27
|
-
- Maksym Grebenets
|
28
27
|
- Daniel Jankowski
|
29
|
-
-
|
28
|
+
- Stefan Natchev
|
29
|
+
- Luka Mirosevic
|
30
|
+
- Danielle Tomlinson
|
31
|
+
- Roger Oba
|
30
32
|
- Iulian Onofrei
|
31
|
-
- Matthew Ellis
|
32
|
-
- Jan Piotrowski
|
33
33
|
autorequire:
|
34
34
|
bindir: bin
|
35
35
|
cert_chain: []
|
36
|
-
date: 2023-
|
36
|
+
date: 2023-04-16 00:00:00.000000000 Z
|
37
37
|
dependencies:
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: xcodeproj
|