fastlane 2.149.0 → 2.150.0.rc4
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 +82 -82
- data/deliver/lib/deliver.rb +0 -1
- data/deliver/lib/deliver/app_screenshot.rb +26 -25
- data/deliver/lib/deliver/options.rb +6 -11
- data/deliver/lib/deliver/runner.rb +7 -21
- data/deliver/lib/deliver/setup.rb +5 -30
- data/deliver/lib/deliver/submit_for_review.rb +155 -90
- data/deliver/lib/deliver/upload_metadata.rb +355 -143
- data/deliver/lib/deliver/upload_price_tier.rb +22 -8
- data/deliver/lib/deliver/upload_screenshots.rb +134 -39
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +77 -96
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +3 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +7 -1
- data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
- data/fastlane/lib/fastlane/actions/set_changelog.rb +23 -20
- data/fastlane/lib/fastlane/actions/slack.rb +1 -1
- data/fastlane/lib/fastlane/actions/spm.rb +7 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -32
- data/fastlane/lib/fastlane/lane.rb +3 -3
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +8 -4
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -0
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +48 -12
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +3 -9
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +2 -5
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +29 -6
- data/fastlane/swift/RubyCommandable.swift +1 -0
- data/fastlane/swift/Runner.swift +85 -13
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +3 -3
- data/fastlane/swift/SocketClient.swift +76 -45
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -3
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +89 -52
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +7 -0
- data/fastlane_core/lib/fastlane_core/project.rb +0 -1
- data/frameit/lib/frameit/device_types.rb +100 -100
- data/produce/lib/produce/itunes_connect.rb +32 -21
- data/produce/lib/produce/options.rb +3 -3
- data/sigh/lib/assets/resign.sh +7 -7
- data/snapshot/lib/assets/SnapshotHelper.swift +5 -5
- data/snapshot/lib/assets/SnapshotHelperXcode8.swift +3 -3
- data/snapshot/lib/snapshot/options.rb +0 -1
- data/snapshot/lib/snapshot/reports_generator.rb +8 -1
- data/spaceship/lib/spaceship/.DS_Store +0 -0
- data/spaceship/lib/spaceship/client.rb +4 -3
- data/spaceship/lib/spaceship/connect_api.rb +25 -2
- data/spaceship/lib/spaceship/connect_api/client.rb +97 -31
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +98 -0
- data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +113 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +120 -3
- data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +38 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +129 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +71 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/app_review_attachment.rb +71 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +93 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +101 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +183 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +86 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +36 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +40 -0
- data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/territory.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +10 -3
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +33 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +841 -0
- data/spaceship/lib/spaceship/spaceauth_runner.rb +2 -2
- data/supply/lib/supply/client.rb +19 -0
- data/supply/lib/supply/reader.rb +16 -0
- metadata +44 -39
- data/deliver/lib/deliver/upload_assets.rb +0 -27
- data/fastlane/lib/assets/.s3_html_template.erb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.hipchat.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/scan/lib/scan/.options.rb.swp +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f736bd9272a03db4f9c52dcb3f3cbe1cc21b3f78221a8a27849a0801ad791177
|
|
4
|
+
data.tar.gz: 61ea559625a0a4fd290774205aecfec2754b7f7a6f4264a3775b51145fd6169e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 769baf252715d93327440d48a152c53bd5f532741f5d9118e04cc09433b1fcd654d0d68973d8c0376e979fda909f0264e6f9e61e9dd66d4d9dacc5027f4ba87b
|
|
7
|
+
data.tar.gz: 3ee6471846ffcdd74dc4e953822aed04fd05caf5ad03ee1f242d486a3197c66168fda158b9b417831b3221e8782b039bda4d59016653be9416c977691d24effb
|
data/README.md
CHANGED
|
@@ -34,49 +34,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
34
34
|
<!-- This table is regenerated and resorted on each release -->
|
|
35
35
|
<table id='team'>
|
|
36
36
|
<tr>
|
|
37
|
-
<td id='
|
|
38
|
-
<a href='https://github.com/
|
|
39
|
-
<img src='https://github.com/
|
|
37
|
+
<td id='iulian-onofrei'>
|
|
38
|
+
<a href='https://github.com/revolter'>
|
|
39
|
+
<img src='https://github.com/revolter.png?size=140'>
|
|
40
40
|
</a>
|
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
41
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
42
42
|
</td>
|
|
43
|
-
<td id='
|
|
44
|
-
<a href='https://github.com/
|
|
45
|
-
<img src='https://github.com/
|
|
43
|
+
<td id='stefan-natchev'>
|
|
44
|
+
<a href='https://github.com/snatchev'>
|
|
45
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
|
46
46
|
</a>
|
|
47
|
-
<h4 align='center'>
|
|
47
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
48
48
|
</td>
|
|
49
|
-
<td id='
|
|
50
|
-
<a href='https://github.com/
|
|
51
|
-
<img src='https://github.com/
|
|
49
|
+
<td id='joshua-liebowitz'>
|
|
50
|
+
<a href='https://github.com/taquitos'>
|
|
51
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
|
52
52
|
</a>
|
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
53
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
54
54
|
</td>
|
|
55
|
-
<td id='
|
|
56
|
-
<a href='https://github.com/
|
|
57
|
-
<img src='https://github.com/
|
|
55
|
+
<td id='helmut-januschka'>
|
|
56
|
+
<a href='https://github.com/hjanuschka'>
|
|
57
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
|
58
58
|
</a>
|
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
59
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
60
60
|
</td>
|
|
61
|
-
<td id='
|
|
62
|
-
<a href='https://github.com/
|
|
63
|
-
<img src='https://github.com/
|
|
61
|
+
<td id='jorge-revuelta-h'>
|
|
62
|
+
<a href='https://github.com/minuscorp'>
|
|
63
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
|
64
64
|
</a>
|
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
65
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
66
66
|
</td>
|
|
67
67
|
</tr>
|
|
68
68
|
<tr>
|
|
69
|
-
<td id='
|
|
70
|
-
<a href='https://github.com/
|
|
71
|
-
<img src='https://github.com/
|
|
69
|
+
<td id='luka-mirosevic'>
|
|
70
|
+
<a href='https://github.com/lmirosevic'>
|
|
71
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
|
72
72
|
</a>
|
|
73
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
73
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
74
74
|
</td>
|
|
75
|
-
<td id='
|
|
76
|
-
<a href='https://github.com/
|
|
77
|
-
<img src='https://github.com/
|
|
75
|
+
<td id='danielle-tomlinson'>
|
|
76
|
+
<a href='https://github.com/endocrimes'>
|
|
77
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
|
78
78
|
</a>
|
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
79
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
80
80
|
</td>
|
|
81
81
|
<td id='jan-piotrowski'>
|
|
82
82
|
<a href='https://github.com/janpio'>
|
|
@@ -84,69 +84,63 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
84
84
|
</a>
|
|
85
85
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
86
86
|
</td>
|
|
87
|
-
<td id='
|
|
88
|
-
<a href='https://github.com/
|
|
89
|
-
<img src='https://github.com/
|
|
87
|
+
<td id='aaron-brager'>
|
|
88
|
+
<a href='https://github.com/getaaron'>
|
|
89
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
|
90
90
|
</a>
|
|
91
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
91
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
92
92
|
</td>
|
|
93
|
-
<td id='
|
|
94
|
-
<a href='https://github.com/
|
|
95
|
-
<img src='https://github.com/
|
|
93
|
+
<td id='olivier-halligon'>
|
|
94
|
+
<a href='https://github.com/AliSoftware'>
|
|
95
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
|
96
96
|
</a>
|
|
97
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
97
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
98
98
|
</td>
|
|
99
99
|
</tr>
|
|
100
100
|
<tr>
|
|
101
|
-
<td id='
|
|
102
|
-
<a href='https://github.com/
|
|
103
|
-
<img src='https://github.com/
|
|
101
|
+
<td id='jimmy-dee'>
|
|
102
|
+
<a href='https://github.com/jdee'>
|
|
103
|
+
<img src='https://github.com/jdee.png?size=140'>
|
|
104
104
|
</a>
|
|
105
|
-
<h4 align='center'
|
|
105
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
106
106
|
</td>
|
|
107
|
-
<td id='
|
|
108
|
-
<a href='https://github.com/
|
|
109
|
-
<img src='https://github.com/
|
|
107
|
+
<td id='daniel-jankowski'>
|
|
108
|
+
<a href='https://github.com/mollyIV'>
|
|
109
|
+
<img src='https://github.com/mollyIV.png?size=140'>
|
|
110
110
|
</a>
|
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
111
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
112
112
|
</td>
|
|
113
|
-
<td id='
|
|
114
|
-
<a href='https://github.com/
|
|
115
|
-
<img src='https://github.com/
|
|
113
|
+
<td id='felix-krause'>
|
|
114
|
+
<a href='https://github.com/KrauseFx'>
|
|
115
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
|
116
116
|
</a>
|
|
117
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
117
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
118
118
|
</td>
|
|
119
|
-
<td id='
|
|
120
|
-
<a href='https://github.com/
|
|
121
|
-
<img src='https://github.com/
|
|
119
|
+
<td id='matthew-ellis'>
|
|
120
|
+
<a href='https://github.com/matthewellis'>
|
|
121
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
|
122
122
|
</a>
|
|
123
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
123
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
124
124
|
</td>
|
|
125
|
-
<td id='
|
|
126
|
-
<a href='https://github.com/
|
|
127
|
-
<img src='https://github.com/
|
|
125
|
+
<td id='manu-wallner'>
|
|
126
|
+
<a href='https://github.com/milch'>
|
|
127
|
+
<img src='https://github.com/milch.png?size=140'>
|
|
128
128
|
</a>
|
|
129
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
129
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
130
130
|
</td>
|
|
131
131
|
</tr>
|
|
132
132
|
<tr>
|
|
133
|
-
<td id='
|
|
134
|
-
<a href='https://github.com/
|
|
135
|
-
<img src='https://github.com/
|
|
136
|
-
</a>
|
|
137
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
138
|
-
</td>
|
|
139
|
-
<td id='aaron-brager'>
|
|
140
|
-
<a href='https://github.com/getaaron'>
|
|
141
|
-
<img src='https://github.com/getaaron.png?size=140'>
|
|
133
|
+
<td id='andrew-mcburney'>
|
|
134
|
+
<a href='https://github.com/armcburney'>
|
|
135
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
|
142
136
|
</a>
|
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
137
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
144
138
|
</td>
|
|
145
|
-
<td id='
|
|
146
|
-
<a href='https://github.com/
|
|
147
|
-
<img src='https://github.com/
|
|
139
|
+
<td id='jérôme-lacoste'>
|
|
140
|
+
<a href='https://github.com/lacostej'>
|
|
141
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
|
148
142
|
</a>
|
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
143
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
150
144
|
</td>
|
|
151
145
|
<td id='max-ott'>
|
|
152
146
|
<a href='https://github.com/max-ott'>
|
|
@@ -154,25 +148,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
154
148
|
</a>
|
|
155
149
|
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
156
150
|
</td>
|
|
157
|
-
<td id='maksym-grebenets'>
|
|
158
|
-
<a href='https://github.com/mgrebenets'>
|
|
159
|
-
<img src='https://github.com/mgrebenets.png?size=140'>
|
|
160
|
-
</a>
|
|
161
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
162
|
-
</td>
|
|
163
|
-
</tr>
|
|
164
|
-
<tr>
|
|
165
151
|
<td id='josh-holtz'>
|
|
166
152
|
<a href='https://github.com/joshdholtz'>
|
|
167
153
|
<img src='https://github.com/joshdholtz.png?size=140'>
|
|
168
154
|
</a>
|
|
169
155
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
170
156
|
</td>
|
|
171
|
-
<td id='
|
|
172
|
-
<a href='https://github.com/
|
|
173
|
-
<img src='https://github.com/
|
|
157
|
+
<td id='fumiya-nakamura'>
|
|
158
|
+
<a href='https://github.com/nafu'>
|
|
159
|
+
<img src='https://github.com/nafu.png?size=140'>
|
|
174
160
|
</a>
|
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
161
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
162
|
+
</td>
|
|
163
|
+
</tr>
|
|
164
|
+
<tr>
|
|
165
|
+
<td id='maksym-grebenets'>
|
|
166
|
+
<a href='https://github.com/mgrebenets'>
|
|
167
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
|
168
|
+
</a>
|
|
169
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
170
|
+
</td>
|
|
171
|
+
<td id='kohki-miki'>
|
|
172
|
+
<a href='https://github.com/giginet'>
|
|
173
|
+
<img src='https://github.com/giginet.png?size=140'>
|
|
174
|
+
</a>
|
|
175
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
176
176
|
</td>
|
|
177
177
|
</table>
|
|
178
178
|
|
data/deliver/lib/deliver.rb
CHANGED
|
@@ -6,7 +6,6 @@ require_relative 'deliver/runner'
|
|
|
6
6
|
require_relative 'deliver/upload_metadata'
|
|
7
7
|
require_relative 'deliver/upload_screenshots'
|
|
8
8
|
require_relative 'deliver/upload_price_tier'
|
|
9
|
-
require_relative 'deliver/upload_assets'
|
|
10
9
|
require_relative 'deliver/submit_for_review'
|
|
11
10
|
require_relative 'deliver/app_screenshot'
|
|
12
11
|
require_relative 'deliver/html_generator'
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'fastimage'
|
|
2
2
|
|
|
3
3
|
require_relative 'module'
|
|
4
|
+
require 'spaceship/connect_api/models/app_screenshot_set'
|
|
4
5
|
|
|
5
6
|
module Deliver
|
|
6
7
|
# AppScreenshot represents one screenshots for one specific locale and
|
|
@@ -95,31 +96,31 @@ module Deliver
|
|
|
95
96
|
# The iTC API requires a different notation for the device
|
|
96
97
|
def device_type
|
|
97
98
|
matching = {
|
|
98
|
-
ScreenSize::IOS_35 =>
|
|
99
|
-
ScreenSize::IOS_40 =>
|
|
100
|
-
ScreenSize::IOS_47 =>
|
|
101
|
-
ScreenSize::IOS_55 =>
|
|
102
|
-
ScreenSize::IOS_58 =>
|
|
103
|
-
ScreenSize::IOS_65 =>
|
|
104
|
-
ScreenSize::IOS_IPAD =>
|
|
105
|
-
ScreenSize::IOS_IPAD_10_5 =>
|
|
106
|
-
ScreenSize::IOS_IPAD_11 =>
|
|
107
|
-
ScreenSize::IOS_IPAD_PRO =>
|
|
108
|
-
ScreenSize::IOS_IPAD_PRO_12_9 =>
|
|
109
|
-
ScreenSize::IOS_40_MESSAGES =>
|
|
110
|
-
ScreenSize::IOS_47_MESSAGES =>
|
|
111
|
-
ScreenSize::IOS_55_MESSAGES =>
|
|
112
|
-
ScreenSize::IOS_58_MESSAGES =>
|
|
113
|
-
ScreenSize::IOS_65_MESSAGES =>
|
|
114
|
-
ScreenSize::IOS_IPAD_MESSAGES =>
|
|
115
|
-
ScreenSize::IOS_IPAD_PRO_MESSAGES =>
|
|
116
|
-
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES =>
|
|
117
|
-
ScreenSize::IOS_IPAD_10_5_MESSAGES =>
|
|
118
|
-
ScreenSize::IOS_IPAD_11_MESSAGES =>
|
|
119
|
-
ScreenSize::MAC =>
|
|
120
|
-
ScreenSize::IOS_APPLE_WATCH =>
|
|
121
|
-
ScreenSize::IOS_APPLE_WATCH_SERIES4 =>
|
|
122
|
-
ScreenSize::APPLE_TV =>
|
|
99
|
+
ScreenSize::IOS_35 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_35,
|
|
100
|
+
ScreenSize::IOS_40 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_40,
|
|
101
|
+
ScreenSize::IOS_47 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_47, # also 7 & 8
|
|
102
|
+
ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
103
|
+
ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
|
|
104
|
+
ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
|
|
105
|
+
ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
|
|
106
|
+
ScreenSize::IOS_IPAD_10_5 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_105,
|
|
107
|
+
ScreenSize::IOS_IPAD_11 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_11,
|
|
108
|
+
ScreenSize::IOS_IPAD_PRO => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_129,
|
|
109
|
+
ScreenSize::IOS_IPAD_PRO_12_9 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_129,
|
|
110
|
+
ScreenSize::IOS_40_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_40,
|
|
111
|
+
ScreenSize::IOS_47_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_47, # also 7 & 8
|
|
112
|
+
ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
113
|
+
ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
|
|
114
|
+
ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
|
|
115
|
+
ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
|
|
116
|
+
ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_129,
|
|
117
|
+
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_129,
|
|
118
|
+
ScreenSize::IOS_IPAD_10_5_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_105,
|
|
119
|
+
ScreenSize::IOS_IPAD_11_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_11,
|
|
120
|
+
ScreenSize::MAC => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_DESKTOP,
|
|
121
|
+
ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
|
|
122
|
+
ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
|
|
123
|
+
# ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::
|
|
123
124
|
}
|
|
124
125
|
return matching[self.screen_size]
|
|
125
126
|
end
|
|
@@ -2,7 +2,6 @@ require 'fastlane_core/configuration/config_item'
|
|
|
2
2
|
require 'credentials_manager/appfile_config'
|
|
3
3
|
|
|
4
4
|
require_relative 'module'
|
|
5
|
-
require_relative 'upload_assets'
|
|
6
5
|
|
|
7
6
|
module Deliver
|
|
8
7
|
# rubocop:disable Metrics/ClassLength
|
|
@@ -206,6 +205,7 @@ module Deliver
|
|
|
206
205
|
short_option: "-b",
|
|
207
206
|
description: "Extra information for the submission (e.g. compliance specifications, IDFA settings)",
|
|
208
207
|
is_string: false,
|
|
208
|
+
type: Hash,
|
|
209
209
|
optional: true),
|
|
210
210
|
|
|
211
211
|
# affiliation
|
|
@@ -283,6 +283,7 @@ module Deliver
|
|
|
283
283
|
FastlaneCore::ConfigItem.new(key: :individual_metadata_items,
|
|
284
284
|
env_name: "DELIVER_INDIVUDAL_METADATA_ITEMS",
|
|
285
285
|
description: "An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow",
|
|
286
|
+
deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
|
|
286
287
|
is_string: false,
|
|
287
288
|
type: Array,
|
|
288
289
|
default_value: []),
|
|
@@ -291,21 +292,15 @@ module Deliver
|
|
|
291
292
|
FastlaneCore::ConfigItem.new(key: :app_icon,
|
|
292
293
|
env_name: "DELIVER_APP_ICON_PATH",
|
|
293
294
|
description: "Metadata: The path to the app icon",
|
|
295
|
+
deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
|
|
294
296
|
optional: true,
|
|
295
|
-
short_option: "-l",
|
|
296
|
-
verify_block: proc do |value|
|
|
297
|
-
UI.user_error!("Could not find png file at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
|
298
|
-
UI.user_error!("'#{value}' doesn't seem to be one of the supported files. supported: #{Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.join(',')}") unless Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.include?(File.extname(value).downcase)
|
|
299
|
-
end),
|
|
297
|
+
short_option: "-l"),
|
|
300
298
|
FastlaneCore::ConfigItem.new(key: :apple_watch_app_icon,
|
|
301
299
|
env_name: "DELIVER_APPLE_WATCH_APP_ICON_PATH",
|
|
302
300
|
description: "Metadata: The path to the Apple Watch app icon",
|
|
301
|
+
deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
|
|
303
302
|
optional: true,
|
|
304
|
-
short_option: "-q",
|
|
305
|
-
verify_block: proc do |value|
|
|
306
|
-
UI.user_error!("Could not find png file at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
|
307
|
-
UI.user_error!("'#{value}' doesn't seem to be one of the supported files. supported: #{Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.join(',')}") unless Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.include?(File.extname(value).downcase)
|
|
308
|
-
end),
|
|
303
|
+
short_option: "-q"),
|
|
309
304
|
FastlaneCore::ConfigItem.new(key: :copyright,
|
|
310
305
|
env_name: "DELIVER_COPYRIGHT",
|
|
311
306
|
description: "Metadata: The copyright notice",
|
|
@@ -7,7 +7,6 @@ require 'fastlane_core/itunes_transporter'
|
|
|
7
7
|
require 'spaceship'
|
|
8
8
|
require_relative 'html_generator'
|
|
9
9
|
require_relative 'submit_for_review'
|
|
10
|
-
require_relative 'upload_assets'
|
|
11
10
|
require_relative 'upload_price_tier'
|
|
12
11
|
require_relative 'upload_metadata'
|
|
13
12
|
require_relative 'upload_screenshots'
|
|
@@ -87,9 +86,14 @@ module Deliver
|
|
|
87
86
|
# If not, the new version will automatically be created
|
|
88
87
|
def verify_version
|
|
89
88
|
app_version = options[:app_version]
|
|
90
|
-
UI.message("Making sure the latest version on App Store Connect matches '#{app_version}'
|
|
89
|
+
UI.message("Making sure the latest version on App Store Connect matches '#{app_version}'...")
|
|
91
90
|
|
|
92
|
-
|
|
91
|
+
legacy_app = options[:app]
|
|
92
|
+
app_id = legacy_app.apple_id
|
|
93
|
+
app = Spaceship::ConnectAPI::App.get(app_id: app_id)
|
|
94
|
+
|
|
95
|
+
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
|
96
|
+
changed = app.ensure_version!(app_version, platform: platform)
|
|
93
97
|
|
|
94
98
|
if changed
|
|
95
99
|
UI.success("Successfully set the version to '#{app_version}'")
|
|
@@ -110,9 +114,6 @@ module Deliver
|
|
|
110
114
|
# Assign "default" values to all languages
|
|
111
115
|
upload_metadata.assign_defaults(options)
|
|
112
116
|
|
|
113
|
-
# Handle app icon / watch icon
|
|
114
|
-
prepare_app_icons(options)
|
|
115
|
-
|
|
116
117
|
# Validate
|
|
117
118
|
validate_html(screenshots)
|
|
118
119
|
|
|
@@ -120,21 +121,6 @@ module Deliver
|
|
|
120
121
|
upload_metadata.upload(options)
|
|
121
122
|
upload_screenshots.upload(options, screenshots)
|
|
122
123
|
UploadPriceTier.new.upload(options)
|
|
123
|
-
UploadAssets.new.upload(options) # e.g. app icon
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
# If options[:app_icon]/options[:apple_watch_app_icon]
|
|
127
|
-
# is supplied value/path will be used.
|
|
128
|
-
# If it is unset files (app_icon/watch_icon) exists in
|
|
129
|
-
# the fastlane/metadata/ folder, those will be used
|
|
130
|
-
def prepare_app_icons(options = {})
|
|
131
|
-
return unless options[:metadata_path]
|
|
132
|
-
|
|
133
|
-
default_app_icon_path = Dir[File.join(options[:metadata_path], "app_icon.{png,jpg}")].first
|
|
134
|
-
options[:app_icon] ||= default_app_icon_path if default_app_icon_path && File.exist?(default_app_icon_path)
|
|
135
|
-
|
|
136
|
-
default_watch_icon_path = Dir[File.join(options[:metadata_path], "watch_icon.{png,jpg}")].first
|
|
137
|
-
options[:apple_watch_app_icon] ||= default_watch_icon_path if default_watch_icon_path && File.exist?(default_watch_icon_path)
|
|
138
124
|
end
|
|
139
125
|
|
|
140
126
|
# Upload the binary to App Store Connect
|
|
@@ -60,9 +60,9 @@ module Deliver
|
|
|
60
60
|
app_details = v.application.details
|
|
61
61
|
|
|
62
62
|
# All the localised metadata
|
|
63
|
-
(UploadMetadata::LOCALISED_VERSION_VALUES + UploadMetadata::LOCALISED_APP_VALUES).each do |key|
|
|
63
|
+
(UploadMetadata::LOCALISED_VERSION_VALUES.keys + UploadMetadata::LOCALISED_APP_VALUES.keys).each do |key|
|
|
64
64
|
v.description.languages.each do |language|
|
|
65
|
-
if UploadMetadata::LOCALISED_VERSION_VALUES.include?(key)
|
|
65
|
+
if UploadMetadata::LOCALISED_VERSION_VALUES.keys.include?(key)
|
|
66
66
|
content = v.send(key)[language].to_s
|
|
67
67
|
else
|
|
68
68
|
content = app_details.send(key)[language].to_s
|
|
@@ -76,8 +76,8 @@ module Deliver
|
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
# All non-localised metadata
|
|
79
|
-
(UploadMetadata::NON_LOCALISED_VERSION_VALUES + UploadMetadata::NON_LOCALISED_APP_VALUES).each do |key|
|
|
80
|
-
if UploadMetadata::NON_LOCALISED_VERSION_VALUES.include?(key)
|
|
79
|
+
(UploadMetadata::NON_LOCALISED_VERSION_VALUES.keys + UploadMetadata::NON_LOCALISED_APP_VALUES).each do |key|
|
|
80
|
+
if UploadMetadata::NON_LOCALISED_VERSION_VALUES.keys.include?(key)
|
|
81
81
|
content = v.send(key).to_s
|
|
82
82
|
else
|
|
83
83
|
content = app_details.send(key).to_s
|
|
@@ -88,19 +88,8 @@ module Deliver
|
|
|
88
88
|
UI.message("Writing to '#{resulting_path}'")
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
-
# Trade Representative Contact Information
|
|
92
|
-
UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES.each do |key, option_name|
|
|
93
|
-
content = v.send(key).to_s
|
|
94
|
-
content += "\n"
|
|
95
|
-
base_dir = File.join(path, UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_DIR)
|
|
96
|
-
FileUtils.mkdir_p(base_dir)
|
|
97
|
-
resulting_path = File.join(base_dir, "#{option_name}.txt")
|
|
98
|
-
File.write(resulting_path, content)
|
|
99
|
-
UI.message("Writing to '#{resulting_path}'")
|
|
100
|
-
end
|
|
101
|
-
|
|
102
91
|
# Review information
|
|
103
|
-
UploadMetadata::
|
|
92
|
+
UploadMetadata::REVIEW_INFORMATION_VALUES_LEGACY.each do |key, option_name|
|
|
104
93
|
content = v.send(key).to_s
|
|
105
94
|
content += "\n"
|
|
106
95
|
base_dir = File.join(path, UploadMetadata::REVIEW_INFORMATION_DIR)
|
|
@@ -111,20 +100,6 @@ module Deliver
|
|
|
111
100
|
end
|
|
112
101
|
|
|
113
102
|
UI.success("Successfully created new configuration files.")
|
|
114
|
-
|
|
115
|
-
# get App icon + watch icon
|
|
116
|
-
if v.large_app_icon.asset_token
|
|
117
|
-
app_icon_extension = File.extname(v.large_app_icon.url)
|
|
118
|
-
app_icon_path = File.join(path, "app_icon#{app_icon_extension}")
|
|
119
|
-
File.write(app_icon_path, open(v.large_app_icon.url).read)
|
|
120
|
-
UI.success("Successfully downloaded large app icon")
|
|
121
|
-
end
|
|
122
|
-
if v.watch_app_icon.asset_token
|
|
123
|
-
watch_app_icon_extension = File.extname(v.watch_app_icon.url)
|
|
124
|
-
watch_icon_path = File.join(path, "watch_icon#{watch_app_icon_extension}")
|
|
125
|
-
File.write(watch_icon_path, open(v.watch_app_icon.url).read)
|
|
126
|
-
UI.success("Successfully downloaded watch icon")
|
|
127
|
-
end
|
|
128
103
|
end
|
|
129
104
|
|
|
130
105
|
def download_screenshots(path, options)
|