fastlane 2.220.0 → 2.221.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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]
|