fastlane 2.214.0 → 2.217.0
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 +98 -98
- data/deliver/lib/deliver/app_screenshot.rb +20 -10
- data/deliver/lib/deliver/runner.rb +2 -1
- data/deliver/lib/deliver/submit_for_review.rb +13 -0
- data/deliver/lib/deliver/upload_metadata.rb +58 -13
- data/fastlane/lib/fastlane/actions/docs/build_app.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +8 -8
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +6 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
- data/fastlane/lib/fastlane/actions/download_universal_apk_from_google_play.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +4 -0
- data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
- data/fastlane/lib/fastlane/actions/install_on_device.rb +1 -1
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +17 -2
- data/fastlane/lib/fastlane/actions/slather.rb +17 -4
- data/fastlane/lib/fastlane/helper/git_helper.rb +3 -0
- data/fastlane/lib/fastlane/helper/xcodes_helper.rb +0 -3
- data/fastlane/lib/fastlane/lane.rb +9 -1
- data/fastlane/lib/fastlane/new_action.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +3 -3
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -2
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +1 -1
- data/fastlane/lib/fastlane/runner.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +2 -2
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +67 -7
- 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 +17 -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 +22 -22
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/project.rb +4 -0
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +1 -1
- data/frameit/lib/frameit/device_types.rb +1 -1
- data/gym/lib/gym/module.rb +13 -2
- data/gym/lib/gym/options.rb +1 -1
- data/match/lib/match/change_password.rb +3 -9
- data/match/lib/match/commands_generator.rb +3 -6
- data/match/lib/match/encryption.rb +1 -1
- data/match/lib/match/importer.rb +3 -31
- data/match/lib/match/migrate.rb +6 -2
- data/match/lib/match/nuke.rb +3 -25
- data/match/lib/match/options.rb +20 -0
- data/match/lib/match/runner.rb +16 -37
- data/match/lib/match/setup.rb +1 -1
- data/match/lib/match/storage/git_storage.rb +9 -1
- data/match/lib/match/storage/s3_storage.rb +6 -0
- data/match/lib/match/storage.rb +56 -5
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +1 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
- data/snapshot/lib/snapshot/reports_generator.rb +48 -7
- data/spaceship/lib/spaceship/connect_api/api_client.rb +21 -2
- data/spaceship/lib/spaceship/connect_api/models/app.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -9
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +4 -4
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/device.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +14 -8
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +8 -2
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +0 -3
- data/supply/lib/supply/client.rb +47 -21
- data/supply/lib/supply/image_listing.rb +15 -0
- data/supply/lib/supply/options.rb +5 -0
- data/supply/lib/supply/setup.rb +1 -1
- data/supply/lib/supply/uploader.rb +60 -18
- data/supply/lib/supply.rb +1 -0
- data/trainer/lib/trainer/xcresult.rb +1 -1
- metadata +282 -273
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e01e5f95c0f041f81a6d2865261a7bf02a4edc77c8e3e7d0d42fdccc93a9eab3
|
|
4
|
+
data.tar.gz: 2f9e98e9d81c4035378505cbf6e3d18cffd680ed3d3c6d8bab31b3be8e7f9a70
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0e43d45ef9b768b1eba630e1148a9f31f7b356a63977fea8fa45262c0d18a0e952c36e7208654f2b11dcfcb207a2a753b2b7e5820d9a9b209f87954f8048414b
|
|
7
|
+
data.tar.gz: 2177260881cd3aab9d3b7b5542cfc526a4140eb5707108ea346146a2e2da19b3edf627d8013aa7b71b07df5df0a9571d5d0af474dd611f0871cf9339cc6addf9
|
data/README.md
CHANGED
|
@@ -35,43 +35,43 @@ 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='jimmy-dee'>
|
|
39
|
+
<a href='https://github.com/jdee'>
|
|
40
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
41
41
|
</a>
|
|
42
|
-
<h4 align='center'
|
|
42
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
43
43
|
</td>
|
|
44
|
-
<td id='
|
|
45
|
-
<a href='https://github.com/
|
|
46
|
-
<img src='https://github.com/
|
|
44
|
+
<td id='andrew-mcburney'>
|
|
45
|
+
<a href='https://github.com/armcburney'>
|
|
46
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
47
47
|
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
48
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
49
49
|
</td>
|
|
50
|
-
<td id='
|
|
51
|
-
<a href='https://github.com/
|
|
52
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='joshua-liebowitz'>
|
|
51
|
+
<a href='https://github.com/taquitos'>
|
|
52
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
53
53
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</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='jan-piotrowski'>
|
|
63
|
+
<a href='https://github.com/janpio'>
|
|
64
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
65
65
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</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='olivier-halligon'>
|
|
71
|
+
<a href='https://github.com/AliSoftware'>
|
|
72
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
73
73
|
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
75
75
|
</td>
|
|
76
76
|
<td id='josh-holtz'>
|
|
77
77
|
<a href='https://github.com/joshdholtz'>
|
|
@@ -79,81 +79,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
79
79
|
</a>
|
|
80
80
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
81
81
|
</td>
|
|
82
|
-
<td id='
|
|
83
|
-
<a href='https://github.com/
|
|
84
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='aaron-brager'>
|
|
83
|
+
<a href='https://github.com/getaaron'>
|
|
84
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
85
85
|
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</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='matthew-ellis'>
|
|
95
|
+
<a href='https://github.com/matthewellis'>
|
|
96
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
97
97
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
99
99
|
</td>
|
|
100
100
|
</tr>
|
|
101
101
|
<tr>
|
|
102
|
-
<td id='jimmy-dee'>
|
|
103
|
-
<a href='https://github.com/jdee'>
|
|
104
|
-
<img src='https://github.com/jdee.png' width='140px;'>
|
|
105
|
-
</a>
|
|
106
|
-
<h4 align='center'>Jimmy Dee</h4>
|
|
107
|
-
</td>
|
|
108
|
-
<td id='joshua-liebowitz'>
|
|
109
|
-
<a href='https://github.com/taquitos'>
|
|
110
|
-
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
111
|
-
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
113
|
-
</td>
|
|
114
|
-
<td id='max-ott'>
|
|
115
|
-
<a href='https://github.com/max-ott'>
|
|
116
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
117
|
-
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
119
|
-
</td>
|
|
120
|
-
<td id='andrew-mcburney'>
|
|
121
|
-
<a href='https://github.com/armcburney'>
|
|
122
|
-
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
123
|
-
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
125
|
-
</td>
|
|
126
102
|
<td id='satoshi-namai'>
|
|
127
103
|
<a href='https://github.com/ainame'>
|
|
128
104
|
<img src='https://github.com/ainame.png' width='140px;'>
|
|
129
105
|
</a>
|
|
130
106
|
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
131
107
|
</td>
|
|
132
|
-
</tr>
|
|
133
|
-
<tr>
|
|
134
108
|
<td id='maksym-grebenets'>
|
|
135
109
|
<a href='https://github.com/mgrebenets'>
|
|
136
110
|
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
137
111
|
</a>
|
|
138
112
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
139
113
|
</td>
|
|
140
|
-
<td id='
|
|
141
|
-
<a href='https://github.com/
|
|
142
|
-
<img src='https://github.com/
|
|
114
|
+
<td id='danielle-tomlinson'>
|
|
115
|
+
<a href='https://github.com/endocrimes'>
|
|
116
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
143
117
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
118
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
145
119
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
120
|
+
<td id='kohki-miki'>
|
|
121
|
+
<a href='https://github.com/giginet'>
|
|
122
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
149
123
|
</a>
|
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
151
125
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='manu-wallner'>
|
|
127
|
+
<a href='https://github.com/milch'>
|
|
128
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
155
129
|
</a>
|
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
131
|
+
</td>
|
|
132
|
+
</tr>
|
|
133
|
+
<tr>
|
|
134
|
+
<td id='jorge-revuelta-h'>
|
|
135
|
+
<a href='https://github.com/minuscorp'>
|
|
136
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
137
|
+
</a>
|
|
138
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</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='fumiya-nakamura'>
|
|
159
147
|
<a href='https://github.com/nafu'>
|
|
@@ -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/nafu003'>Fumiya Nakamura</a></h4>
|
|
163
151
|
</td>
|
|
164
|
-
</tr>
|
|
165
|
-
<tr>
|
|
166
|
-
<td id='kohki-miki'>
|
|
167
|
-
<a href='https://github.com/giginet'>
|
|
168
|
-
<img src='https://github.com/giginet.png' width='140px;'>
|
|
169
|
-
</a>
|
|
170
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
171
|
-
</td>
|
|
172
152
|
<td id='stefan-natchev'>
|
|
173
153
|
<a href='https://github.com/snatchev'>
|
|
174
154
|
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
175
155
|
</a>
|
|
176
156
|
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
177
157
|
</td>
|
|
178
|
-
<td id='
|
|
179
|
-
<a href='https://github.com/
|
|
180
|
-
<img src='https://github.com/
|
|
158
|
+
<td id='luka-mirosevic'>
|
|
159
|
+
<a href='https://github.com/lmirosevic'>
|
|
160
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
181
161
|
</a>
|
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
183
163
|
</td>
|
|
184
|
-
|
|
185
|
-
<
|
|
186
|
-
<
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td id='manish-rathi'>
|
|
167
|
+
<a href='https://github.com/crazymanish'>
|
|
168
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
187
169
|
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
170
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
189
171
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
172
|
+
<td id='jérôme-lacoste'>
|
|
173
|
+
<a href='https://github.com/lacostej'>
|
|
174
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
193
175
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
177
|
+
</td>
|
|
178
|
+
<td id='daniel-jankowski'>
|
|
179
|
+
<a href='https://github.com/mollyIV'>
|
|
180
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
181
|
+
</a>
|
|
182
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
183
|
+
</td>
|
|
184
|
+
<td id='felix-krause'>
|
|
185
|
+
<a href='https://github.com/KrauseFx'>
|
|
186
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
187
|
+
</a>
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
189
|
+
</td>
|
|
190
|
+
<td id='helmut-januschka'>
|
|
191
|
+
<a href='https://github.com/hjanuschka'>
|
|
192
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
193
|
+
</a>
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</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='iulian-onofrei'>
|
|
199
|
+
<a href='https://github.com/revolter'>
|
|
200
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
203
203
|
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
|
@@ -19,9 +19,9 @@ module Deliver
|
|
|
19
19
|
IOS_55 = "iOS-5.5-in"
|
|
20
20
|
# iPhone XS
|
|
21
21
|
IOS_58 = "iOS-5.8-in"
|
|
22
|
-
# iPhone
|
|
22
|
+
# iPhone 14 Pro
|
|
23
23
|
IOS_61 = "iOS-6.1-in"
|
|
24
|
-
# iPhone XS Max
|
|
24
|
+
# iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR
|
|
25
25
|
IOS_65 = "iOS-6.5-in"
|
|
26
26
|
# iPhone 14 Pro Max
|
|
27
27
|
IOS_67 = "iOS-6.7-in"
|
|
@@ -45,9 +45,9 @@ module Deliver
|
|
|
45
45
|
IOS_55_MESSAGES = "iOS-5.5-in-messages"
|
|
46
46
|
# iPhone XS iMessage
|
|
47
47
|
IOS_58_MESSAGES = "iOS-5.8-in-messages"
|
|
48
|
-
# iPhone
|
|
48
|
+
# iPhone 14 Pro iMessage
|
|
49
49
|
IOS_61_MESSAGES = "iOS-6.1-in-messages"
|
|
50
|
-
# iPhone XS Max iMessage
|
|
50
|
+
# iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR iMessage
|
|
51
51
|
IOS_65_MESSAGES = "iOS-6.5-in-messages"
|
|
52
52
|
# iPhone 14 Pro Max iMessage
|
|
53
53
|
IOS_67_MESSAGES = "iOS-6.7-in-messages"
|
|
@@ -69,6 +69,8 @@ module Deliver
|
|
|
69
69
|
IOS_APPLE_WATCH_SERIES4 = "iOS-Apple-Watch-Series4"
|
|
70
70
|
# Apple Watch Series 7
|
|
71
71
|
IOS_APPLE_WATCH_SERIES7 = "iOS-Apple-Watch-Series7"
|
|
72
|
+
# Apple Watch Ultra
|
|
73
|
+
IOS_APPLE_WATCH_ULTRA = "iOS-Apple-Watch-Ultra"
|
|
72
74
|
|
|
73
75
|
# Apple TV
|
|
74
76
|
APPLE_TV = "Apple-TV"
|
|
@@ -104,6 +106,7 @@ module Deliver
|
|
|
104
106
|
ScreenSize::IOS_47 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_47, # also 7 & 8
|
|
105
107
|
ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
106
108
|
ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
|
|
109
|
+
ScreenSize::IOS_61 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_61,
|
|
107
110
|
ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
|
|
108
111
|
ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
|
|
109
112
|
ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
|
|
@@ -115,6 +118,7 @@ module Deliver
|
|
|
115
118
|
ScreenSize::IOS_47_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_47, # also 7 & 8
|
|
116
119
|
ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
117
120
|
ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
|
|
121
|
+
ScreenSize::IOS_61_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_61,
|
|
118
122
|
ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
|
|
119
123
|
ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
|
|
120
124
|
ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
|
|
@@ -126,6 +130,7 @@ module Deliver
|
|
|
126
130
|
ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
|
|
127
131
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
|
|
128
132
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_7,
|
|
133
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_ULTRA,
|
|
129
134
|
ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
|
|
130
135
|
}
|
|
131
136
|
return matching[self.screen_size]
|
|
@@ -139,7 +144,7 @@ module Deliver
|
|
|
139
144
|
ScreenSize::IOS_47 => "iPhone 6", # also 7 & 8
|
|
140
145
|
ScreenSize::IOS_55 => "iPhone 6 Plus", # also 7 Plus & 8 Plus
|
|
141
146
|
ScreenSize::IOS_58 => "iPhone XS",
|
|
142
|
-
ScreenSize::IOS_61 => "iPhone
|
|
147
|
+
ScreenSize::IOS_61 => "iPhone 14 Pro",
|
|
143
148
|
ScreenSize::IOS_65 => "iPhone XS Max",
|
|
144
149
|
ScreenSize::IOS_67 => "iPhone 14 Pro Max",
|
|
145
150
|
ScreenSize::IOS_IPAD => "iPad",
|
|
@@ -151,7 +156,7 @@ module Deliver
|
|
|
151
156
|
ScreenSize::IOS_47_MESSAGES => "iPhone 6 (iMessage)", # also 7 & 8
|
|
152
157
|
ScreenSize::IOS_55_MESSAGES => "iPhone 6 Plus (iMessage)", # also 7 Plus & 8 Plus
|
|
153
158
|
ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
|
|
154
|
-
ScreenSize::IOS_61_MESSAGES => "iPhone
|
|
159
|
+
ScreenSize::IOS_61_MESSAGES => "iPhone 14 Pro (iMessage)",
|
|
155
160
|
ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
|
|
156
161
|
ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
|
|
157
162
|
ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
|
|
@@ -163,6 +168,7 @@ module Deliver
|
|
|
163
168
|
ScreenSize::IOS_APPLE_WATCH => "Watch",
|
|
164
169
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
|
|
165
170
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => "Watch Series7",
|
|
171
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => "Watch Ultra",
|
|
166
172
|
ScreenSize::APPLE_TV => "Apple TV"
|
|
167
173
|
}
|
|
168
174
|
return matching[self.screen_size]
|
|
@@ -182,6 +188,7 @@ module Deliver
|
|
|
182
188
|
ScreenSize::IOS_47_MESSAGES,
|
|
183
189
|
ScreenSize::IOS_55_MESSAGES,
|
|
184
190
|
ScreenSize::IOS_58_MESSAGES,
|
|
191
|
+
ScreenSize::IOS_61_MESSAGES,
|
|
185
192
|
ScreenSize::IOS_65_MESSAGES,
|
|
186
193
|
ScreenSize::IOS_67_MESSAGES,
|
|
187
194
|
ScreenSize::IOS_IPAD_MESSAGES,
|
|
@@ -207,8 +214,8 @@ module Deliver
|
|
|
207
214
|
[2778, 1284]
|
|
208
215
|
],
|
|
209
216
|
ScreenSize::IOS_61_MESSAGES => [
|
|
210
|
-
[
|
|
211
|
-
[
|
|
217
|
+
[1179, 2556],
|
|
218
|
+
[2556, 1179]
|
|
212
219
|
],
|
|
213
220
|
ScreenSize::IOS_58_MESSAGES => [
|
|
214
221
|
[1125, 2436],
|
|
@@ -271,8 +278,8 @@ module Deliver
|
|
|
271
278
|
[2778, 1284]
|
|
272
279
|
],
|
|
273
280
|
ScreenSize::IOS_61 => [
|
|
274
|
-
[
|
|
275
|
-
[
|
|
281
|
+
[1179, 2556],
|
|
282
|
+
[2556, 1179]
|
|
276
283
|
],
|
|
277
284
|
ScreenSize::IOS_58 => [
|
|
278
285
|
[1125, 2436],
|
|
@@ -337,6 +344,9 @@ module Deliver
|
|
|
337
344
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => [
|
|
338
345
|
[396, 484]
|
|
339
346
|
],
|
|
347
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => [
|
|
348
|
+
[410, 502]
|
|
349
|
+
],
|
|
340
350
|
ScreenSize::APPLE_TV => [
|
|
341
351
|
[1920, 1080],
|
|
342
352
|
[3840, 2160]
|
|
@@ -231,7 +231,8 @@ module Deliver
|
|
|
231
231
|
|
|
232
232
|
unless result
|
|
233
233
|
transporter_errors = transporter.displayable_errors
|
|
234
|
-
|
|
234
|
+
file_type = platform == "osx" ? "pkg" : "ipa"
|
|
235
|
+
UI.user_error!("Error uploading #{file_type} file: \n #{transporter_errors}")
|
|
235
236
|
end
|
|
236
237
|
end
|
|
237
238
|
|
|
@@ -47,6 +47,19 @@ module Deliver
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
submission.add_app_store_version_to_review_items(app_store_version_id: version.id)
|
|
50
|
+
|
|
51
|
+
10.times do
|
|
52
|
+
version_with_latest_info = Spaceship::ConnectAPI::AppStoreVersion.get(app_store_version_id: version.id)
|
|
53
|
+
|
|
54
|
+
if version_with_latest_info.app_store_state == Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW
|
|
55
|
+
break
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
UI.message("Waiting for the state of the version to become #{Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW}...")
|
|
59
|
+
|
|
60
|
+
sleep(15)
|
|
61
|
+
end
|
|
62
|
+
|
|
50
63
|
submission.submit_for_review
|
|
51
64
|
end
|
|
52
65
|
|
|
@@ -89,7 +89,8 @@ module Deliver
|
|
|
89
89
|
enabled_languages = detect_languages(options)
|
|
90
90
|
|
|
91
91
|
app_store_version_localizations = verify_available_version_languages!(options, app, enabled_languages) unless options[:edit_live]
|
|
92
|
-
|
|
92
|
+
app_info = fetch_edit_app_info(app)
|
|
93
|
+
app_info_localizations = verify_available_info_languages!(options, app, app_info, enabled_languages) unless options[:edit_live] || !updating_localized_app_info?(options, app, app_info)
|
|
93
94
|
|
|
94
95
|
if options[:edit_live]
|
|
95
96
|
# not all values are editable when using live_version
|
|
@@ -211,18 +212,19 @@ module Deliver
|
|
|
211
212
|
store_version_worker.start
|
|
212
213
|
|
|
213
214
|
# Update app info localizations
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
215
|
+
if app_info_localizations
|
|
216
|
+
app_info_worker = FastlaneCore::QueueWorker.new do |app_info_localization|
|
|
217
|
+
attributes = localized_info_attributes_by_locale[app_info_localization.locale]
|
|
218
|
+
if attributes
|
|
219
|
+
UI.message("Uploading metadata to App Store Connect for localized info '#{app_info_localization.locale}'")
|
|
220
|
+
app_info_localization.update(attributes: attributes)
|
|
221
|
+
end
|
|
219
222
|
end
|
|
223
|
+
app_info_worker.batch_enqueue(app_info_localizations)
|
|
224
|
+
app_info_worker.start
|
|
220
225
|
end
|
|
221
|
-
app_info_worker.batch_enqueue(app_info_localizations)
|
|
222
|
-
app_info_worker.start
|
|
223
226
|
|
|
224
227
|
# Update categories
|
|
225
|
-
app_info = fetch_edit_app_info(app)
|
|
226
228
|
if app_info
|
|
227
229
|
category_id_map = {}
|
|
228
230
|
|
|
@@ -437,6 +439,12 @@ module Deliver
|
|
|
437
439
|
end
|
|
438
440
|
end
|
|
439
441
|
|
|
442
|
+
def fetch_live_app_info(app, wait_time: 10)
|
|
443
|
+
retry_if_nil("Cannot find live app info", wait_time: wait_time) do
|
|
444
|
+
app.fetch_live_app_info
|
|
445
|
+
end
|
|
446
|
+
end
|
|
447
|
+
|
|
440
448
|
def retry_if_nil(message, tries: 5, wait_time: 10)
|
|
441
449
|
loop do
|
|
442
450
|
tries -= 1
|
|
@@ -451,12 +459,49 @@ module Deliver
|
|
|
451
459
|
end
|
|
452
460
|
end
|
|
453
461
|
|
|
454
|
-
#
|
|
455
|
-
def
|
|
456
|
-
app_info
|
|
462
|
+
# Checking if the metadata to update includes localised App Info
|
|
463
|
+
def updating_localized_app_info?(options, app, app_info)
|
|
464
|
+
app_info ||= fetch_live_app_info(app)
|
|
465
|
+
unless app_info
|
|
466
|
+
UI.important("Can't find edit or live App info. Skipping upload.")
|
|
467
|
+
return false
|
|
468
|
+
end
|
|
469
|
+
localizations = app_info.get_app_info_localizations
|
|
470
|
+
|
|
471
|
+
LOCALISED_APP_VALUES.keys.each do |key|
|
|
472
|
+
current = options[key]
|
|
473
|
+
next unless current
|
|
474
|
+
|
|
475
|
+
unless current.kind_of?(Hash)
|
|
476
|
+
UI.error("Error with provided '#{key}'. Must be a hash, the key being the language.")
|
|
477
|
+
next
|
|
478
|
+
end
|
|
479
|
+
|
|
480
|
+
current.each do |language, value|
|
|
481
|
+
strip_value = value.to_s.strip
|
|
482
|
+
next if strip_value.empty?
|
|
483
|
+
|
|
484
|
+
app_info_locale = localizations.find { |l| l.locale == language }
|
|
485
|
+
next if app_info_locale.nil?
|
|
457
486
|
|
|
487
|
+
begin
|
|
488
|
+
current_value = app_info_locale.public_send(key.to_sym)
|
|
489
|
+
rescue NoMethodError
|
|
490
|
+
next
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
return true if current_value != strip_value
|
|
494
|
+
end
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
UI.message('No changes to localized App Info detected. Skipping upload.')
|
|
498
|
+
return false
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
# Finding languages to enable
|
|
502
|
+
def verify_available_info_languages!(options, app, app_info, languages)
|
|
458
503
|
unless app_info
|
|
459
|
-
UI.user_error!("Cannot update languages - could not find an editable
|
|
504
|
+
UI.user_error!("Cannot update languages - could not find an editable 'App Info'. Verify that your app is in one of the editable states in App Store Connect")
|
|
460
505
|
return
|
|
461
506
|
end
|
|
462
507
|
|
|
@@ -42,8 +42,8 @@ fastlane gym
|
|
|
42
42
|
|
|
43
43
|
_gym_ uses the latest APIs to build and sign your application which results in much faster build times.
|
|
44
44
|
|
|
45
|
-
| |
|
|
46
|
-
|
|
45
|
+
| | _gym_ Features |
|
|
46
|
+
|----------|------------------|
|
|
47
47
|
🚀 | _gym_ builds 30% faster than other build tools like [shenzhen](https://github.com/nomad/shenzhen)
|
|
48
48
|
🏁 | Beautiful inline build output
|
|
49
49
|
📖 | Helps you resolve common build errors like code signing issues
|
|
@@ -32,7 +32,7 @@ androidTestImplementation 'tools.fastlane:screengrab:x.x.x'
|
|
|
32
32
|
|
|
33
33
|
The latest version is [ ](https://search.maven.org/artifact/tools.fastlane/screengrab)
|
|
34
34
|
|
|
35
|
-
As of
|
|
35
|
+
As of _screengrab_ version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version.
|
|
36
36
|
|
|
37
37
|
##### Configuring your Manifest Permissions
|
|
38
38
|
|
|
@@ -63,21 +63,21 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
|
|
|
63
63
|
1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
|
|
64
64
|
|
|
65
65
|
If you're using Java use:
|
|
66
|
-
|
|
66
|
+
|
|
67
67
|
```java
|
|
68
68
|
@ClassRule
|
|
69
69
|
public static final LocaleTestRule localeTestRule = new LocaleTestRule();
|
|
70
70
|
```
|
|
71
|
-
|
|
71
|
+
|
|
72
72
|
If you're using Kotlin use:
|
|
73
|
-
|
|
73
|
+
|
|
74
74
|
```kotlin
|
|
75
75
|
@Rule @JvmField
|
|
76
76
|
val localeTestRule = LocaleTestRule()
|
|
77
77
|
```
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
The `@JvmField` annotation is important. It won't work like this:
|
|
80
|
-
|
|
80
|
+
|
|
81
81
|
```kotlin
|
|
82
82
|
companion object {
|
|
83
83
|
@get:ClassRule
|
|
@@ -87,7 +87,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
|
|
|
87
87
|
|
|
88
88
|
2. To capture screenshots, add the following to your tests `Screengrab.screenshot("name_of_screenshot_here");` on the appropriate screens
|
|
89
89
|
|
|
90
|
-
# Generating Screenshots with
|
|
90
|
+
# Generating Screenshots with _screengrab_
|
|
91
91
|
- Then, before running `fastlane screengrab` you'll need a debug and test apk
|
|
92
92
|
- You can create your APKs manually with `./gradlew assembleDebug assembleAndroidTest`
|
|
93
93
|
- You can also create a lane and use `build_android_app`:
|
|
@@ -228,7 +228,7 @@ When using JUnit 3 you'll need to add a bit more code:
|
|
|
228
228
|
|
|
229
229
|
## Clean Status Bar
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
_screengrab_ can clean your status bar to make your screenshots even more beautiful.
|
|
232
232
|
It is simply a wrapper that allows configuring SystemUI DemoMode in your code.
|
|
233
233
|
Note: the clean status bar feature is only supported on devices with *API level >= 23*.
|
|
234
234
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<img src="/img/actions/precheck.png" width="250">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
_precheck_
|
|
6
6
|
============
|
|
7
7
|
|
|
8
8
|
###### Check your app using a community driven set of App Store review rules to avoid being rejected
|
|
@@ -23,8 +23,8 @@ Apple rejects builds for many avoidable metadata issues like including swear wor
|
|
|
23
23
|
# Features
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
| |
|
|
27
|
-
|
|
26
|
+
| | _precheck_ Features |
|
|
27
|
+
|----------|-----------------------|
|
|
28
28
|
🐛 | product bug mentions
|
|
29
29
|
🙅 | Swear word checker
|
|
30
30
|
🤖 | Mentioning other platforms
|
|
@@ -48,7 +48,7 @@ This does the following:
|
|
|
48
48
|
- Downloads the certificate
|
|
49
49
|
- Generates a new ```.pem``` file in the current working directory, which you can upload to your server
|
|
50
50
|
|
|
51
|
-
Note that _pem_ will never revoke your existing certificates. _pem_ can't download any of your existing push certificates, as the private key is only available on the machine it was created on.
|
|
51
|
+
Note that _pem_ will never revoke your existing certificates. _pem_ can't download any of your existing push certificates, as the private key is only available on the machine it was created on.
|
|
52
52
|
|
|
53
53
|
If you already have a push certificate enabled, which is active for at least 30 more days, _pem_ will not create a new certificate. If you still want to create one, use the `force`:
|
|
54
54
|
|
|
@@ -111,7 +111,7 @@ If you need the `p12` in your keychain, perhaps to test push with an app like [K
|
|
|
111
111
|
Enter Import Password:
|
|
112
112
|
<hit enter: the p12 has no password>
|
|
113
113
|
MAC verified OK
|
|
114
|
-
Enter
|
|
114
|
+
Enter your pem passphrase:
|
|
115
115
|
<enter a temporary password to encrypt the pem file>
|
|
116
116
|
|
|
117
117
|
% openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12
|