fastlane 2.220.0 → 2.221.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +100 -100
- data/deliver/lib/deliver/options.rb +1 -1
- data/deliver/lib/deliver/submit_for_review.rb +2 -79
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +3 -3
- data/fastlane/lib/fastlane/actions/spm.rb +7 -0
- data/fastlane/lib/fastlane/lane_manager_base.rb +16 -8
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +12 -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 +19 -19
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +2 -0
- data/match/lib/match/runner.rb +0 -1
- data/pilot/lib/pilot/build_manager.rb +9 -4
- data/spaceship/lib/spaceship/connect_api/api_client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app.rb +28 -33
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -19
- data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +31 -22
- data/spaceship/lib/spaceship/connect_api/testflight/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +47 -43
- data/spaceship/lib/spaceship/connect_api/token.rb +7 -2
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +92 -131
- data/spaceship/lib/spaceship/connect_api/users/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/users/users.rb +15 -11
- data/spaceship/lib/spaceship/connect_api.rb +0 -1
- data/spaceship/lib/spaceship/stats_middleware.rb +2 -2
- data/spaceship/lib/spaceship/tunes/app_submission.rb +0 -19
- metadata +23 -24
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f07b93540a18ca9244d03f38d6b42715da53a5f3a1d2e01ae0ca07f55b8bbfc
|
4
|
+
data.tar.gz: 02a85c5ddcb83eb661020c053b2c33411d0f2b4e69bf309a2f5dff62c7376b11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f36be8c3a80185881f79dd332a09e51e3d6a5b512e5571a2dc8c5eb70f38bc0c74cfa862329befbc43f8f4c0fd771ed40a579b23371d12463a1a27921b1e1e85
|
7
|
+
data.tar.gz: aabf80f68459a5dbffd434963f317755828a18d81ed00e4d5a2a9f0fc6123eeb48d1066b2b4517a6c69ba10252e4a03ea55acf28442d886b23fb243f9a20263c
|
data/README.md
CHANGED
@@ -35,43 +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/Revolt666'>Iulian Onofrei</a></h4>
|
43
|
-
</td>
|
44
|
-
<td id='manu-wallner'>
|
45
|
-
<a href='https://github.com/milch'>
|
46
|
-
<img src='https://github.com/milch.png' width='140px;'>
|
47
|
-
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
49
|
-
</td>
|
50
|
-
<td id='fumiya-nakamura'>
|
51
|
-
<a href='https://github.com/nafu'>
|
52
|
-
<img src='https://github.com/nafu.png' width='140px;'>
|
53
|
-
</a>
|
54
|
-
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
55
|
-
</td>
|
56
|
-
<td id='helmut-januschka'>
|
57
|
-
<a href='https://github.com/hjanuschka'>
|
58
|
-
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
38
|
+
<td id='matthew-ellis'>
|
39
|
+
<a href='https://github.com/matthewellis'>
|
40
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
59
41
|
</a>
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
42
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
61
43
|
</td>
|
62
|
-
<td id='
|
63
|
-
<a href='https://github.com/
|
64
|
-
<img src='https://github.com/
|
44
|
+
<td id='roger-oba'>
|
45
|
+
<a href='https://github.com/rogerluan'>
|
46
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
65
47
|
</a>
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
48
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
67
49
|
</td>
|
68
|
-
|
69
|
-
<
|
70
|
-
<
|
71
|
-
<a href='https://github.com/janpio'>
|
72
|
-
<img src='https://github.com/janpio.png' width='140px;'>
|
50
|
+
<td id='luka-mirosevic'>
|
51
|
+
<a href='https://github.com/lmirosevic'>
|
52
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
73
53
|
</a>
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
54
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
75
55
|
</td>
|
76
56
|
<td id='daniel-jankowski'>
|
77
57
|
<a href='https://github.com/mollyIV'>
|
@@ -79,37 +59,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
79
59
|
</a>
|
80
60
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
81
61
|
</td>
|
82
|
-
<td id='
|
83
|
-
<a href='https://github.com/
|
84
|
-
<img src='https://github.com/
|
85
|
-
</a>
|
86
|
-
<h4 align='center'>Łukasz Grabowski</h4>
|
87
|
-
</td>
|
88
|
-
<td id='maksym-grebenets'>
|
89
|
-
<a href='https://github.com/mgrebenets'>
|
90
|
-
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
91
|
-
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
93
|
-
</td>
|
94
|
-
<td id='stefan-natchev'>
|
95
|
-
<a href='https://github.com/snatchev'>
|
96
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
62
|
+
<td id='fumiya-nakamura'>
|
63
|
+
<a href='https://github.com/nafu'>
|
64
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
97
65
|
</a>
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
66
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
99
67
|
</td>
|
100
68
|
</tr>
|
101
69
|
<tr>
|
102
|
-
<td id='
|
103
|
-
<a href='https://github.com/
|
104
|
-
<img src='https://github.com/
|
70
|
+
<td id='olivier-halligon'>
|
71
|
+
<a href='https://github.com/AliSoftware'>
|
72
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
105
73
|
</a>
|
106
|
-
<h4 align='center'><a href='https://twitter.com/
|
74
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
107
75
|
</td>
|
108
|
-
<td id='
|
109
|
-
<a href='https://github.com/
|
110
|
-
<img src='https://github.com/
|
76
|
+
<td id='danielle-tomlinson'>
|
77
|
+
<a href='https://github.com/endocrimes'>
|
78
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
111
79
|
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
80
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
113
81
|
</td>
|
114
82
|
<td id='felix-krause'>
|
115
83
|
<a href='https://github.com/KrauseFx'>
|
@@ -123,37 +91,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
123
91
|
</a>
|
124
92
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
125
93
|
</td>
|
126
|
-
<td id='
|
127
|
-
<a href='https://github.com/
|
128
|
-
<img src='https://github.com/
|
94
|
+
<td id='jimmy-dee'>
|
95
|
+
<a href='https://github.com/jdee'>
|
96
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
129
97
|
</a>
|
130
|
-
<h4 align='center'
|
98
|
+
<h4 align='center'>Jimmy Dee</h4>
|
131
99
|
</td>
|
132
100
|
</tr>
|
133
101
|
<tr>
|
134
|
-
<td id='
|
135
|
-
<a href='https://github.com/
|
136
|
-
<img src='https://github.com/
|
102
|
+
<td id='manish-rathi'>
|
103
|
+
<a href='https://github.com/crazymanish'>
|
104
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
137
105
|
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
106
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
139
107
|
</td>
|
140
|
-
<td id='
|
141
|
-
<a href='https://github.com/
|
142
|
-
<img src='https://github.com/
|
108
|
+
<td id='jorge-revuelta-h'>
|
109
|
+
<a href='https://github.com/minuscorp'>
|
110
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
143
111
|
</a>
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
112
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
145
113
|
</td>
|
146
|
-
<td id='
|
147
|
-
<a href='https://github.com/
|
148
|
-
<img src='https://github.com/
|
114
|
+
<td id='jan-piotrowski'>
|
115
|
+
<a href='https://github.com/janpio'>
|
116
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
149
117
|
</a>
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
118
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
151
119
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
120
|
+
<td id='jérôme-lacoste'>
|
121
|
+
<a href='https://github.com/lacostej'>
|
122
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
155
123
|
</a>
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
124
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
125
|
+
</td>
|
126
|
+
<td id='andrew-mcburney'>
|
127
|
+
<a href='https://github.com/armcburney'>
|
128
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
129
|
+
</a>
|
130
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
131
|
+
</td>
|
132
|
+
</tr>
|
133
|
+
<tr>
|
134
|
+
<td id='josh-holtz'>
|
135
|
+
<a href='https://github.com/joshdholtz'>
|
136
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
137
|
+
</a>
|
138
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
139
|
+
</td>
|
140
|
+
<td id='łukasz-grabowski'>
|
141
|
+
<a href='https://github.com/lucgrabowski'>
|
142
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
143
|
+
</a>
|
144
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
157
145
|
</td>
|
158
146
|
<td id='satoshi-namai'>
|
159
147
|
<a href='https://github.com/ainame'>
|
@@ -161,45 +149,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
161
149
|
</a>
|
162
150
|
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
163
151
|
</td>
|
152
|
+
<td id='aaron-brager'>
|
153
|
+
<a href='https://github.com/getaaron'>
|
154
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
155
|
+
</a>
|
156
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
157
|
+
</td>
|
158
|
+
<td id='iulian-onofrei'>
|
159
|
+
<a href='https://github.com/revolter'>
|
160
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
161
|
+
</a>
|
162
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
163
|
+
</td>
|
164
164
|
</tr>
|
165
165
|
<tr>
|
166
|
-
<td id='
|
167
|
-
<a href='https://github.com/
|
168
|
-
<img src='https://github.com/
|
166
|
+
<td id='maksym-grebenets'>
|
167
|
+
<a href='https://github.com/mgrebenets'>
|
168
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
169
169
|
</a>
|
170
|
-
<h4 align='center'>
|
170
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
171
171
|
</td>
|
172
|
-
<td id='
|
173
|
-
<a href='https://github.com/
|
174
|
-
<img src='https://github.com/
|
172
|
+
<td id='stefan-natchev'>
|
173
|
+
<a href='https://github.com/snatchev'>
|
174
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
175
175
|
</a>
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
176
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
177
177
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
178
|
+
<td id='helmut-januschka'>
|
179
|
+
<a href='https://github.com/hjanuschka'>
|
180
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
181
181
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
182
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</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
|
-
<td id='
|
191
|
-
<a href='https://github.com/
|
192
|
-
<img src='https://github.com/
|
190
|
+
<td id='max-ott'>
|
191
|
+
<a href='https://github.com/max-ott'>
|
192
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
193
193
|
</a>
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
194
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</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='joshua-liebowitz'>
|
199
|
+
<a href='https://github.com/taquitos'>
|
200
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
201
201
|
</a>
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
202
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
203
203
|
</td>
|
204
204
|
</table>
|
205
205
|
|
@@ -249,7 +249,7 @@ module Deliver
|
|
249
249
|
end),
|
250
250
|
FastlaneCore::ConfigItem.new(key: :submission_information,
|
251
251
|
short_option: "-b",
|
252
|
-
description: "Extra information for the submission (e.g. compliance specifications
|
252
|
+
description: "Extra information for the submission (e.g. compliance specifications)",
|
253
253
|
type: Hash,
|
254
254
|
optional: true),
|
255
255
|
|
@@ -20,7 +20,6 @@ module Deliver
|
|
20
20
|
build = select_build(options, app, version, platform)
|
21
21
|
|
22
22
|
update_export_compliance(options, app, build)
|
23
|
-
update_idfa(options, app, version)
|
24
23
|
update_submission_information(options, app)
|
25
24
|
|
26
25
|
create_review_submission(options, app, version, platform)
|
@@ -51,11 +50,11 @@ module Deliver
|
|
51
50
|
10.times do
|
52
51
|
version_with_latest_info = Spaceship::ConnectAPI::AppStoreVersion.get(app_store_version_id: version.id)
|
53
52
|
|
54
|
-
if version_with_latest_info.
|
53
|
+
if version_with_latest_info.app_version_state == Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::READY_FOR_REVIEW
|
55
54
|
break
|
56
55
|
end
|
57
56
|
|
58
|
-
UI.message("Waiting for the state of the version to become #{Spaceship::ConnectAPI::AppStoreVersion::
|
57
|
+
UI.message("Waiting for the state of the version to become #{Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::READY_FOR_REVIEW}...")
|
59
58
|
|
60
59
|
sleep(15)
|
61
60
|
end
|
@@ -120,82 +119,6 @@ module Deliver
|
|
120
119
|
end
|
121
120
|
end
|
122
121
|
|
123
|
-
def update_idfa(options, app, version)
|
124
|
-
submission_information = options[:submission_information] || {}
|
125
|
-
submission_information = submission_information.transform_keys(&:to_sym)
|
126
|
-
|
127
|
-
uses_idfa = submission_information[:add_id_info_uses_idfa]
|
128
|
-
|
129
|
-
idfa_declaration = begin
|
130
|
-
version.fetch_idfa_declaration
|
131
|
-
rescue
|
132
|
-
nil
|
133
|
-
end
|
134
|
-
|
135
|
-
updated_idfa = false
|
136
|
-
|
137
|
-
# Set IDFA on version
|
138
|
-
unless uses_idfa.nil?
|
139
|
-
UI.verbose("Updating app store version for IDFA status of '#{uses_idfa}'")
|
140
|
-
version = version.update(attributes: {
|
141
|
-
usesIdfa: uses_idfa
|
142
|
-
})
|
143
|
-
UI.verbose("Updated app store version for IDFA status of '#{version.uses_idfa}'")
|
144
|
-
updated_idfa = true
|
145
|
-
end
|
146
|
-
|
147
|
-
# Error if uses_idfa not set
|
148
|
-
if version.uses_idfa.nil?
|
149
|
-
message = [
|
150
|
-
"Use of Advertising Identifier (IDFA) is required to submit",
|
151
|
-
"Add information to the :submission_information option...",
|
152
|
-
" Docs: http://docs.fastlane.tools/actions/deliver/#compliance-and-idfa-settings",
|
153
|
-
" Example: submission_information: { add_id_info_uses_idfa: false }",
|
154
|
-
" Example: submission_information: {",
|
155
|
-
" add_id_info_uses_idfa: true,",
|
156
|
-
" add_id_info_serves_ads: false,",
|
157
|
-
" add_id_info_tracks_install: true,",
|
158
|
-
" add_id_info_tracks_action: true,",
|
159
|
-
" add_id_info_limits_tracking: true",
|
160
|
-
" }",
|
161
|
-
" Example CLI:",
|
162
|
-
" --submission_information \"{\\\"add_id_info_uses_idfa\\\": false}\""
|
163
|
-
].join("\n")
|
164
|
-
UI.user_error!(message)
|
165
|
-
end
|
166
|
-
|
167
|
-
# Create, update, or delete IDFA declaration
|
168
|
-
if uses_idfa == false
|
169
|
-
if idfa_declaration
|
170
|
-
UI.verbose("Deleting IDFA declaration")
|
171
|
-
idfa_declaration.delete!
|
172
|
-
updated_idfa = true
|
173
|
-
UI.verbose("Deleted IDFA declaration")
|
174
|
-
end
|
175
|
-
elsif uses_idfa == true
|
176
|
-
attributes = {
|
177
|
-
honorsLimitedAdTracking: !!submission_information[:add_id_info_limits_tracking],
|
178
|
-
servesAds: !!submission_information[:add_id_info_serves_ads],
|
179
|
-
attributesAppInstallationToPreviousAd: !!submission_information[:add_id_info_tracks_install],
|
180
|
-
attributesActionWithPreviousAd: !!submission_information[:add_id_info_tracks_action]
|
181
|
-
}
|
182
|
-
|
183
|
-
if idfa_declaration
|
184
|
-
UI.verbose("Updating IDFA declaration")
|
185
|
-
idfa_declaration.update(attributes: attributes)
|
186
|
-
UI.verbose("Updated IDFA declaration")
|
187
|
-
else
|
188
|
-
UI.verbose("Creating IDFA declaration")
|
189
|
-
version.create_idfa_declaration(attributes: attributes)
|
190
|
-
UI.verbose("Created IDFA declaration")
|
191
|
-
end
|
192
|
-
|
193
|
-
updated_idfa = true
|
194
|
-
end
|
195
|
-
|
196
|
-
UI.success("Successfully updated IDFA declarations on App Store Connect") if updated_idfa
|
197
|
-
end
|
198
|
-
|
199
122
|
def update_submission_information(options, app)
|
200
123
|
submission_information = options[:submission_information] || {}
|
201
124
|
submission_information = submission_information.transform_keys(&:to_sym)
|
@@ -56,7 +56,8 @@ module Fastlane
|
|
56
56
|
description: "The key ID"),
|
57
57
|
FastlaneCore::ConfigItem.new(key: :issuer_id,
|
58
58
|
env_name: "APP_STORE_CONNECT_API_KEY_ISSUER_ID",
|
59
|
-
description: "The issuer ID"
|
59
|
+
description: "The issuer ID. It can be nil if the key is individual API key",
|
60
|
+
optional: true),
|
60
61
|
FastlaneCore::ConfigItem.new(key: :key_filepath,
|
61
62
|
env_name: "APP_STORE_CONNECT_API_KEY_KEY_FILEPATH",
|
62
63
|
description: "The path to the key p8 file",
|
@@ -431,12 +431,12 @@ end
|
|
431
431
|
|
432
432
|
Omit `build_number` to let _fastlane_ automatically select the latest build number for the current version being edited for release from App Store Connect.
|
433
433
|
|
434
|
-
### Compliance
|
434
|
+
### Compliance settings
|
435
435
|
|
436
|
-
Use the `submission_information` parameter for additional submission specifiers, including compliance
|
436
|
+
Use the `submission_information` parameter for additional submission specifiers, including compliance settings. Look at the Spaceship's [`app_submission.rb`](https://github.com/fastlane/fastlane/blob/master/spaceship/lib/spaceship/tunes/app_submission.rb) file for options. See [this example](https://github.com/artsy/eigen/blob/faa02e2746194d8d7c11899474de9c517435eca4/fastlane/Fastfile#L131-L149).
|
437
437
|
|
438
438
|
```no-highlight
|
439
|
-
fastlane deliver submit_build --build_number 830 --submission_information "{\"export_compliance_uses_encryption\": false
|
439
|
+
fastlane deliver submit_build --build_number 830 --submission_information "{\"export_compliance_uses_encryption\": false }"
|
440
440
|
```
|
441
441
|
|
442
442
|
### App Privacy Details
|
@@ -11,6 +11,7 @@ module Fastlane
|
|
11
11
|
cmd << "--configuration #{params[:configuration]}" if params[:configuration]
|
12
12
|
cmd << "--disable-sandbox" if params[:disable_sandbox]
|
13
13
|
cmd << "--verbose" if params[:verbose]
|
14
|
+
cmd << "--very-verbose" if params[:very_verbose]
|
14
15
|
if params[:simulator]
|
15
16
|
simulator_platform = simulator_platform(simulator: params[:simulator], simulator_arch: params[:simulator_arch])
|
16
17
|
simulator_sdk = simulator_sdk(simulator: params[:simulator])
|
@@ -118,6 +119,12 @@ module Fastlane
|
|
118
119
|
description: "Increase verbosity of informational output",
|
119
120
|
type: Boolean,
|
120
121
|
default_value: false),
|
122
|
+
FastlaneCore::ConfigItem.new(key: :very_verbose,
|
123
|
+
short_option: "-V",
|
124
|
+
env_name: "FL_SPM_VERY_VERBOSE",
|
125
|
+
description: "Increase verbosity to include debug output",
|
126
|
+
type: Boolean,
|
127
|
+
default_value: false),
|
121
128
|
FastlaneCore::ConfigItem.new(key: :simulator,
|
122
129
|
env_name: "FL_SPM_SIMULATOR",
|
123
130
|
description: "Specifies the simulator to pass for Swift Compiler (one of: #{valid_simulators.join(', ')})",
|
@@ -78,15 +78,23 @@ module Fastlane
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def self.print_error_line(ex)
|
81
|
-
|
82
|
-
return if
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
lines = ex.backtrace_locations&.select { |loc| loc.path == 'Fastfile' }&.map(&:lineno)
|
82
|
+
return if lines.nil? || lines.empty?
|
83
|
+
|
84
|
+
fastfile_content = File.read(FastlaneCore::FastlaneFolder.fastfile_path, encoding: "utf-8")
|
85
|
+
if ex.backtrace_locations.first&.path == 'Fastfile'
|
86
|
+
# If exception happened directly in the Fastfile itself (e.g. ArgumentError)
|
87
|
+
UI.error("Error in your Fastfile at line #{lines.first}")
|
88
|
+
UI.content_error(fastfile_content, lines.first)
|
89
|
+
lines.shift
|
90
|
+
end
|
86
91
|
|
87
|
-
|
88
|
-
|
89
|
-
|
92
|
+
unless lines.empty?
|
93
|
+
# If exception happened directly in the Fastfile, also print the caller (still from the Fastfile).
|
94
|
+
# If exception happened in _fastlane_ internal code, print the line from the Fastfile that called it
|
95
|
+
UI.error("Called from Fastfile at line #{lines.first}")
|
96
|
+
UI.content_error(fastfile_content, lines.first)
|
97
|
+
end
|
90
98
|
end
|
91
99
|
end
|
92
100
|
end
|
@@ -40,13 +40,13 @@ module Fastlane
|
|
40
40
|
return_val = nil
|
41
41
|
|
42
42
|
path_to_use = FastlaneCore::FastlaneFolder.path || Dir.pwd
|
43
|
-
parameters ||= {}
|
43
|
+
parameters ||= {} # by default no parameters
|
44
44
|
begin
|
45
45
|
Dir.chdir(path_to_use) do # the file is located in the fastlane folder
|
46
46
|
execute_flow_block(before_all_blocks, current_platform, current_lane, parameters)
|
47
47
|
execute_flow_block(before_each_blocks, current_platform, current_lane, parameters)
|
48
48
|
|
49
|
-
return_val = lane_obj.call(parameters)
|
49
|
+
return_val = lane_obj.call(parameters)
|
50
50
|
|
51
51
|
# after blocks are only called if no exception was raised before
|
52
52
|
# Call the platform specific after block and then the general one
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.
|
2
|
+
VERSION = '2.221.1'.freeze
|
3
3
|
SUMMARY = "The easiest way to build and release mobile apps.".freeze
|
4
4
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
5
5
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
@@ -95,7 +95,7 @@ public protocol DeliverfileProtocol: AnyObject {
|
|
95
95
|
/// Path to the app rating's config
|
96
96
|
var appRatingConfigPath: String? { get }
|
97
97
|
|
98
|
-
/// Extra information for the submission (e.g. compliance specifications
|
98
|
+
/// Extra information for the submission (e.g. compliance specifications)
|
99
99
|
var submissionInformation: [String: Any]? { get }
|
100
100
|
|
101
101
|
/// The ID of your App Store Connect team if you're in multiple teams
|
@@ -272,4 +272,4 @@ public extension DeliverfileProtocol {
|
|
272
272
|
|
273
273
|
// Please don't remove the lines below
|
274
274
|
// They are used to detect outdated files
|
275
|
-
// FastlaneRunnerAPIVersion [0.9.
|
275
|
+
// FastlaneRunnerAPIVersion [0.9.126]
|
@@ -190,7 +190,7 @@ public func appStoreBuildNumber(apiKeyPath: OptionalConfigValue<String?> = .fast
|
|
190
190
|
|
191
191
|
- parameters:
|
192
192
|
- keyId: The key ID
|
193
|
-
- issuerId: The issuer ID
|
193
|
+
- issuerId: The issuer ID. It can be nil if the key is individual API key
|
194
194
|
- keyFilepath: The path to the key p8 file
|
195
195
|
- keyContent: The content of the key p8 file
|
196
196
|
- isKeyContentBase64: Whether :key_content is Base64 encoded or not
|
@@ -201,7 +201,7 @@ public func appStoreBuildNumber(apiKeyPath: OptionalConfigValue<String?> = .fast
|
|
201
201
|
Load the App Store Connect API token to use in other fastlane tools and actions
|
202
202
|
*/
|
203
203
|
public func appStoreConnectApiKey(keyId: String,
|
204
|
-
issuerId: String,
|
204
|
+
issuerId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
205
205
|
keyFilepath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
206
206
|
keyContent: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
207
207
|
isKeyContentBase64: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
@@ -210,7 +210,7 @@ public func appStoreConnectApiKey(keyId: String,
|
|
210
210
|
setSpaceshipToken: OptionalConfigValue<Bool> = .fastlaneDefault(true))
|
211
211
|
{
|
212
212
|
let keyIdArg = RubyCommand.Argument(name: "key_id", value: keyId, type: nil)
|
213
|
-
let issuerIdArg =
|
213
|
+
let issuerIdArg = issuerId.asRubyArgument(name: "issuer_id", type: nil)
|
214
214
|
let keyFilepathArg = keyFilepath.asRubyArgument(name: "key_filepath", type: nil)
|
215
215
|
let keyContentArg = keyContent.asRubyArgument(name: "key_content", type: nil)
|
216
216
|
let isKeyContentBase64Arg = isKeyContentBase64.asRubyArgument(name: "is_key_content_base64", type: nil)
|
@@ -674,7 +674,7 @@ public func appledoc(input: [String],
|
|
674
674
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
675
675
|
- priceTier: The price tier of this application
|
676
676
|
- appRatingConfigPath: Path to the app rating's config
|
677
|
-
- submissionInformation: Extra information for the submission (e.g. compliance specifications
|
677
|
+
- submissionInformation: Extra information for the submission (e.g. compliance specifications)
|
678
678
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
679
679
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
680
680
|
- devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
|
@@ -3714,7 +3714,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
|
|
3714
3714
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
3715
3715
|
- priceTier: The price tier of this application
|
3716
3716
|
- appRatingConfigPath: Path to the app rating's config
|
3717
|
-
- submissionInformation: Extra information for the submission (e.g. compliance specifications
|
3717
|
+
- submissionInformation: Extra information for the submission (e.g. compliance specifications)
|
3718
3718
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
3719
3719
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
3720
3720
|
- devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
|
@@ -10938,6 +10938,7 @@ public func splunkmint(dsym: OptionalConfigValue<String?> = .fastlaneDefault(nil
|
|
10938
10938
|
- xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
|
10939
10939
|
- xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
|
10940
10940
|
- verbose: Increase verbosity of informational output
|
10941
|
+
- veryVerbose: Increase verbosity to include debug output
|
10941
10942
|
- simulator: Specifies the simulator to pass for Swift Compiler (one of: iphonesimulator, macosx)
|
10942
10943
|
- simulatorArch: Specifies the architecture of the simulator to pass for Swift Compiler (one of: x86_64, arm64). Requires the simulator option to be specified also, otherwise, it's ignored
|
10943
10944
|
*/
|
@@ -10953,6 +10954,7 @@ public func spm(command: String = "build",
|
|
10953
10954
|
xcprettyOutput: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10954
10955
|
xcprettyArgs: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10955
10956
|
verbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10957
|
+
veryVerbose: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
10956
10958
|
simulator: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
10957
10959
|
simulatorArch: String = "arm64")
|
10958
10960
|
{
|
@@ -10968,6 +10970,7 @@ public func spm(command: String = "build",
|
|
10968
10970
|
let xcprettyOutputArg = xcprettyOutput.asRubyArgument(name: "xcpretty_output", type: nil)
|
10969
10971
|
let xcprettyArgsArg = xcprettyArgs.asRubyArgument(name: "xcpretty_args", type: nil)
|
10970
10972
|
let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil)
|
10973
|
+
let veryVerboseArg = veryVerbose.asRubyArgument(name: "very_verbose", type: nil)
|
10971
10974
|
let simulatorArg = simulator.asRubyArgument(name: "simulator", type: nil)
|
10972
10975
|
let simulatorArchArg = RubyCommand.Argument(name: "simulator_arch", value: simulatorArch, type: nil)
|
10973
10976
|
let array: [RubyCommand.Argument?] = [commandArg,
|
@@ -10982,6 +10985,7 @@ public func spm(command: String = "build",
|
|
10982
10985
|
xcprettyOutputArg,
|
10983
10986
|
xcprettyArgsArg,
|
10984
10987
|
verboseArg,
|
10988
|
+
veryVerboseArg,
|
10985
10989
|
simulatorArg,
|
10986
10990
|
simulatorArchArg]
|
10987
10991
|
let args: [RubyCommand.Argument] = array
|
@@ -12536,7 +12540,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
|
|
12536
12540
|
- resetRatings: Reset the summary rating when you release a new version of the application
|
12537
12541
|
- priceTier: The price tier of this application
|
12538
12542
|
- appRatingConfigPath: Path to the app rating's config
|
12539
|
-
- submissionInformation: Extra information for the submission (e.g. compliance specifications
|
12543
|
+
- submissionInformation: Extra information for the submission (e.g. compliance specifications)
|
12540
12544
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
12541
12545
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
12542
12546
|
- devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
|
@@ -13594,7 +13598,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
|
13594
13598
|
coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13595
13599
|
coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13596
13600
|
xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
13597
|
-
ideFoundationPath: String = "/Applications/
|
13601
|
+
ideFoundationPath: String = "/Applications/Xcode_15.0.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
13598
13602
|
legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
13599
13603
|
{
|
13600
13604
|
let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
|
@@ -13797,4 +13801,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13797
13801
|
|
13798
13802
|
// Please don't remove the lines below
|
13799
13803
|
// They are used to detect outdated files
|
13800
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13804
|
+
// FastlaneRunnerAPIVersion [0.9.179]
|