fastlane 2.151.2 → 2.155.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +82 -82
- data/deliver/lib/deliver/app_screenshot.rb +1 -1
- data/deliver/lib/deliver/commands_generator.rb +7 -4
- data/deliver/lib/deliver/detect_values.rb +9 -3
- data/deliver/lib/deliver/download_screenshots.rb +1 -3
- data/deliver/lib/deliver/html_generator.rb +8 -1
- data/deliver/lib/deliver/options.rb +1 -1
- data/deliver/lib/deliver/runner.rb +5 -10
- data/deliver/lib/deliver/setup.rb +92 -3
- data/deliver/lib/deliver/submit_for_review.rb +4 -6
- data/deliver/lib/deliver/upload_metadata.rb +51 -30
- data/deliver/lib/deliver/upload_price_tier.rb +1 -3
- data/deliver/lib/deliver/upload_screenshots.rb +75 -44
- data/fastlane/lib/fastlane/{helper/.s3_client_helper.rb.swp → .erb_template_helper.rb.swp} +0 -0
- data/{deliver/lib/deliver/.commands_generator.rb.swp → fastlane/lib/fastlane/actions/.git_commit.rb.swp} +0 -0
- data/fastlane/lib/fastlane/actions/carthage.rb +7 -0
- data/fastlane/lib/fastlane/actions/create_keychain.rb +5 -1
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +21 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -4
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +4 -2
- data/fastlane/lib/fastlane/actions/erb.rb +10 -2
- data/fastlane/lib/fastlane/actions/git_branch.rb +4 -1
- data/fastlane/lib/fastlane/actions/git_pull.rb +13 -2
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +5 -0
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +11 -3
- data/fastlane/lib/fastlane/runner.rb +3 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +3 -3
- data/fastlane/swift/Fastlane.swift +419 -192
- 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 +10 -2
- 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 +9 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +25 -6
- data/frameit/lib/frameit/editor.rb +11 -6
- data/gym/lib/gym/detect_values.rb +6 -3
- data/gym/lib/gym/module.rb +30 -0
- data/gym/lib/gym/runner.rb +23 -18
- data/match/lib/match/generator.rb +6 -0
- data/match/lib/match/options.rb +16 -4
- data/match/lib/match/runner.rb +13 -5
- data/match/lib/match/spaceship_ensure.rb +7 -9
- data/match/lib/match/storage/git_storage.rb +16 -2
- data/match/lib/match/storage/google_cloud_storage.rb +1 -1
- data/pilot/lib/pilot/build_manager.rb +9 -0
- data/pilot/lib/pilot/options.rb +7 -1
- data/scan/lib/scan/runner.rb +19 -6
- data/sigh/lib/sigh/download_all.rb +42 -27
- data/sigh/lib/sigh/module.rb +26 -0
- data/sigh/lib/sigh/options.rb +2 -2
- data/sigh/lib/sigh/runner.rb +74 -33
- data/snapshot/lib/snapshot/options.rb +10 -0
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +5 -0
- data/snapshot/lib/snapshot/test_command_generator.rb +3 -2
- data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +4 -1
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +5 -3
- data/spaceship/lib/spaceship/connect_api/model.rb +15 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +61 -3
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +44 -5
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_release_request.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +17 -5
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +41 -7
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +31 -1
- data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +46 -4
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +41 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +32 -1
- data/supply/lib/supply/client.rb +2 -1
- data/supply/lib/supply/options.rb +8 -1
- metadata +34 -61
- data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
- data/frameit/lib/frameit/.editor.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: d05003197423c1e94c2728d49100fbacb7d5f5b657491b94e90f34432d2774ba
|
4
|
+
data.tar.gz: 99b28cc3d83ec3500d9a90554db8464ee479a7e533141e9246164d26fef8edba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a7b6ce2df7348ad80f366ad54a619ad1d966348e3e2a0f616f43d160681c1ba15625f7c16923d4b0bbfa3c873b3936891001f53c5349abba1e0a3c0a6bb4704
|
7
|
+
data.tar.gz: c75739db5b1e8dcea81230f67effe0d1b46de274cab20d85183aa3dafb64088ed85a7260f2aa47e14e802c8a81879b541d7ba4fbca55f56a2c84c1cb09fbeae0
|
data/README.md
CHANGED
@@ -34,23 +34,43 @@ 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='danielle-tomlinson'>
|
38
|
+
<a href='https://github.com/endocrimes'>
|
39
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
42
42
|
</td>
|
43
|
-
<td id='
|
44
|
-
<a href='https://github.com/
|
45
|
-
<img src='https://github.com/
|
43
|
+
<td id='olivier-halligon'>
|
44
|
+
<a href='https://github.com/AliSoftware'>
|
45
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
46
46
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
48
48
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
49
|
+
<td id='max-ott'>
|
50
|
+
<a href='https://github.com/max-ott'>
|
51
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
54
|
+
</td>
|
55
|
+
<td id='jorge-revuelta-h'>
|
56
|
+
<a href='https://github.com/minuscorp'>
|
57
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
58
|
+
</a>
|
59
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
60
|
+
</td>
|
61
|
+
<td id='andrew-mcburney'>
|
62
|
+
<a href='https://github.com/armcburney'>
|
63
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
64
|
+
</a>
|
65
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
66
|
+
</td>
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<td id='jérôme-lacoste'>
|
70
|
+
<a href='https://github.com/lacostej'>
|
71
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
72
|
+
</a>
|
73
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
54
74
|
</td>
|
55
75
|
<td id='josh-holtz'>
|
56
76
|
<a href='https://github.com/joshdholtz'>
|
@@ -58,11 +78,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
58
78
|
</a>
|
59
79
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
60
80
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
81
|
+
<td id='manu-wallner'>
|
82
|
+
<a href='https://github.com/milch'>
|
83
|
+
<img src='https://github.com/milch.png?size=140'>
|
64
84
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
85
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
86
|
+
</td>
|
87
|
+
<td id='fumiya-nakamura'>
|
88
|
+
<a href='https://github.com/nafu'>
|
89
|
+
<img src='https://github.com/nafu.png?size=140'>
|
90
|
+
</a>
|
91
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
92
|
+
</td>
|
93
|
+
<td id='felix-krause'>
|
94
|
+
<a href='https://github.com/KrauseFx'>
|
95
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
96
|
+
</a>
|
97
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
66
98
|
</td>
|
67
99
|
</tr>
|
68
100
|
<tr>
|
@@ -72,17 +104,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
72
104
|
</a>
|
73
105
|
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
74
106
|
</td>
|
75
|
-
<td id='
|
76
|
-
<a href='https://github.com/
|
77
|
-
<img src='https://github.com/
|
107
|
+
<td id='matthew-ellis'>
|
108
|
+
<a href='https://github.com/matthewellis'>
|
109
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
78
110
|
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
111
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
80
112
|
</td>
|
81
|
-
<td id='
|
82
|
-
<a href='https://github.com/
|
83
|
-
<img src='https://github.com/
|
113
|
+
<td id='daniel-jankowski'>
|
114
|
+
<a href='https://github.com/mollyIV'>
|
115
|
+
<img src='https://github.com/mollyIV.png?size=140'>
|
84
116
|
</a>
|
85
|
-
<h4 align='center'><a href='https://twitter.com/
|
117
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
86
118
|
</td>
|
87
119
|
<td id='jimmy-dee'>
|
88
120
|
<a href='https://github.com/jdee'>
|
@@ -90,69 +122,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
90
122
|
</a>
|
91
123
|
<h4 align='center'>Jimmy Dee</h4>
|
92
124
|
</td>
|
93
|
-
<td id='iulian-onofrei'>
|
94
|
-
<a href='https://github.com/revolter'>
|
95
|
-
<img src='https://github.com/revolter.png?size=140'>
|
96
|
-
</a>
|
97
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
98
|
-
</td>
|
99
|
-
</tr>
|
100
|
-
<tr>
|
101
125
|
<td id='jan-piotrowski'>
|
102
126
|
<a href='https://github.com/janpio'>
|
103
127
|
<img src='https://github.com/janpio.png?size=140'>
|
104
128
|
</a>
|
105
129
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
106
130
|
</td>
|
107
|
-
<td id='danielle-tomlinson'>
|
108
|
-
<a href='https://github.com/endocrimes'>
|
109
|
-
<img src='https://github.com/endocrimes.png?size=140'>
|
110
|
-
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
112
|
-
</td>
|
113
|
-
<td id='kohki-miki'>
|
114
|
-
<a href='https://github.com/giginet'>
|
115
|
-
<img src='https://github.com/giginet.png?size=140'>
|
116
|
-
</a>
|
117
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
118
|
-
</td>
|
119
|
-
<td id='aaron-brager'>
|
120
|
-
<a href='https://github.com/getaaron'>
|
121
|
-
<img src='https://github.com/getaaron.png?size=140'>
|
122
|
-
</a>
|
123
|
-
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
124
|
-
</td>
|
125
|
-
<td id='manu-wallner'>
|
126
|
-
<a href='https://github.com/milch'>
|
127
|
-
<img src='https://github.com/milch.png?size=140'>
|
128
|
-
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
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/lacostej'>Jérôme Lacoste</a></h4>
|
138
|
-
</td>
|
139
|
-
<td id='fumiya-nakamura'>
|
140
|
-
<a href='https://github.com/nafu'>
|
141
|
-
<img src='https://github.com/nafu.png?size=140'>
|
133
|
+
<td id='luka-mirosevic'>
|
134
|
+
<a href='https://github.com/lmirosevic'>
|
135
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
142
136
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
144
138
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
139
|
+
<td id='maksym-grebenets'>
|
140
|
+
<a href='https://github.com/mgrebenets'>
|
141
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
148
142
|
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
150
144
|
</td>
|
151
|
-
<td id='
|
152
|
-
<a href='https://github.com/
|
153
|
-
<img src='https://github.com/
|
145
|
+
<td id='kohki-miki'>
|
146
|
+
<a href='https://github.com/giginet'>
|
147
|
+
<img src='https://github.com/giginet.png?size=140'>
|
154
148
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
149
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
156
150
|
</td>
|
157
151
|
<td id='helmut-januschka'>
|
158
152
|
<a href='https://github.com/hjanuschka'>
|
@@ -160,19 +154,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
160
154
|
</a>
|
161
155
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
162
156
|
</td>
|
157
|
+
<td id='aaron-brager'>
|
158
|
+
<a href='https://github.com/getaaron'>
|
159
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
160
|
+
</a>
|
161
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
162
|
+
</td>
|
163
163
|
</tr>
|
164
164
|
<tr>
|
165
|
-
<td id='
|
166
|
-
<a href='https://github.com/
|
167
|
-
<img src='https://github.com/
|
165
|
+
<td id='iulian-onofrei'>
|
166
|
+
<a href='https://github.com/revolter'>
|
167
|
+
<img src='https://github.com/revolter.png?size=140'>
|
168
168
|
</a>
|
169
|
-
<h4 align='center'><a href='https://twitter.com/
|
169
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
170
170
|
</td>
|
171
|
-
<td id='
|
172
|
-
<a href='https://github.com/
|
173
|
-
<img src='https://github.com/
|
171
|
+
<td id='joshua-liebowitz'>
|
172
|
+
<a href='https://github.com/taquitos'>
|
173
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
174
174
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
175
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
176
176
|
</td>
|
177
177
|
</table>
|
178
178
|
|
@@ -120,7 +120,7 @@ module Deliver
|
|
120
120
|
ScreenSize::MAC => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_DESKTOP,
|
121
121
|
ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
|
122
122
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
|
123
|
-
|
123
|
+
ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
|
124
124
|
}
|
125
125
|
return matching[self.screen_size]
|
126
126
|
end
|
@@ -40,6 +40,7 @@ module Deliver
|
|
40
40
|
res
|
41
41
|
end
|
42
42
|
|
43
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
43
44
|
def run
|
44
45
|
program :name, 'deliver'
|
45
46
|
program :version, Fastlane::VERSION
|
@@ -166,15 +167,17 @@ module Deliver
|
|
166
167
|
return 0 unless res
|
167
168
|
|
168
169
|
require 'deliver/setup'
|
169
|
-
|
170
|
+
app = options[:app]
|
171
|
+
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
172
|
+
v = app.get_latest_app_store_version(platform: platform)
|
170
173
|
if options[:app_version].to_s.length > 0
|
171
|
-
v =
|
172
|
-
if v.
|
174
|
+
v = app.get_live_app_store_version(platform: platform) if v.version_string != options[:app_version]
|
175
|
+
if v.nil? || v.version_string != options[:app_version]
|
173
176
|
raise "Neither the current nor live version match specified app_version \"#{options[:app_version]}\""
|
174
177
|
end
|
175
178
|
end
|
176
179
|
|
177
|
-
Deliver::Setup.new.generate_metadata_files(v, path)
|
180
|
+
Deliver::Setup.new.generate_metadata_files(app, v, path)
|
178
181
|
end
|
179
182
|
end
|
180
183
|
|
@@ -36,9 +36,15 @@ module Deliver
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def find_app(options)
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
app_identifier = options[:app_identifier]
|
40
|
+
app_id = options[:app] if app_identifier.to_s.empty?
|
41
|
+
|
42
|
+
if !app_identifier.to_s.empty?
|
43
|
+
app = Spaceship::ConnectAPI::App.find(app_identifier)
|
44
|
+
elsif !app_id.kind_of?(Spaceship::ConnectAPI::App) && !app_id.to_s.empty?
|
45
|
+
app = Spaceship::ConnectAPI::App.get(app_id: app_id)
|
46
|
+
end
|
47
|
+
|
42
48
|
if app
|
43
49
|
options[:app] = app
|
44
50
|
else
|
@@ -14,9 +14,7 @@ module Deliver
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def self.download(options, folder_path)
|
17
|
-
|
18
|
-
app_id = legacy_app.apple_id
|
19
|
-
app = Spaceship::ConnectAPI::App.get(app_id: app_id)
|
17
|
+
app = options[:app]
|
20
18
|
|
21
19
|
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
22
20
|
if options[:use_live_version]
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'spaceship'
|
2
|
+
|
1
3
|
require_relative 'module'
|
2
4
|
|
3
5
|
module Deliver
|
@@ -51,7 +53,12 @@ module Deliver
|
|
51
53
|
@app_name ||= options[:app].name
|
52
54
|
|
53
55
|
@languages = options[:description].keys if options[:description]
|
54
|
-
@languages ||=
|
56
|
+
@languages ||= begin
|
57
|
+
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
58
|
+
version = options[:app].get_edit_app_store_version(platform: platform)
|
59
|
+
|
60
|
+
version.get_app_store_version_localizations.collect(&:locale)
|
61
|
+
end
|
55
62
|
|
56
63
|
html_path = File.join(Deliver::ROOT, "lib/assets/summary.html.erb")
|
57
64
|
html = ERB.new(File.read(html_path)).result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
|
@@ -292,7 +292,7 @@ module Deliver
|
|
292
292
|
deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
|
293
293
|
is_string: false,
|
294
294
|
type: Array,
|
295
|
-
|
295
|
+
optional: true),
|
296
296
|
|
297
297
|
# Non Localised
|
298
298
|
FastlaneCore::ConfigItem.new(key: :app_icon,
|
@@ -91,9 +91,7 @@ module Deliver
|
|
91
91
|
app_version = options[:app_version]
|
92
92
|
UI.message("Making sure the latest version on App Store Connect matches '#{app_version}'...")
|
93
93
|
|
94
|
-
|
95
|
-
app_id = legacy_app.apple_id
|
96
|
-
app = Spaceship::ConnectAPI::App.get(app_id: app_id)
|
94
|
+
app = options[:app]
|
97
95
|
|
98
96
|
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
99
97
|
changed = app.ensure_version!(app_version, platform: platform)
|
@@ -142,14 +140,14 @@ module Deliver
|
|
142
140
|
|
143
141
|
if upload_ipa
|
144
142
|
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
145
|
-
app_id: options[:app].
|
143
|
+
app_id: options[:app].id,
|
146
144
|
ipa_path: options[:ipa],
|
147
145
|
package_path: "/tmp",
|
148
146
|
platform: options[:platform]
|
149
147
|
)
|
150
148
|
elsif upload_pkg
|
151
149
|
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
152
|
-
app_id: options[:app].
|
150
|
+
app_id: options[:app].id,
|
153
151
|
pkg_path: options[:pkg],
|
154
152
|
package_path: "/tmp",
|
155
153
|
platform: options[:platform]
|
@@ -157,15 +155,12 @@ module Deliver
|
|
157
155
|
end
|
158
156
|
|
159
157
|
transporter = transporter_for_selected_team
|
160
|
-
result = transporter.upload(options[:app].
|
158
|
+
result = transporter.upload(options[:app].id, package_path)
|
161
159
|
UI.user_error!("Could not upload binary to App Store Connect. Check out the error above", show_github_issues: true) unless result
|
162
160
|
end
|
163
161
|
|
164
162
|
def reject_version_if_possible
|
165
|
-
|
166
|
-
app_id = legacy_app.apple_id
|
167
|
-
app = Spaceship::ConnectAPI::App.get(app_id: app_id)
|
168
|
-
|
163
|
+
app = options[:app]
|
169
164
|
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
170
165
|
if app.reject_version_if_possible!(platform: platform)
|
171
166
|
UI.success("Successfully rejected previous version!")
|
@@ -40,9 +40,13 @@ module Deliver
|
|
40
40
|
# This method takes care of creating a new 'deliver' folder, containing the app metadata
|
41
41
|
# and screenshots folders
|
42
42
|
def generate_deliver_file(deliver_path, options)
|
43
|
-
|
43
|
+
app = options[:app]
|
44
|
+
|
45
|
+
platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
|
46
|
+
v = app.get_latest_app_store_version(platform: platform)
|
47
|
+
|
44
48
|
metadata_path = options[:metadata_path] || File.join(deliver_path, 'metadata')
|
45
|
-
generate_metadata_files(v, metadata_path)
|
49
|
+
generate_metadata_files(app, v, metadata_path)
|
46
50
|
|
47
51
|
# Generate the final Deliverfile here
|
48
52
|
return File.read(deliverfile_path)
|
@@ -56,7 +60,92 @@ module Deliver
|
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
59
|
-
def generate_metadata_files(
|
63
|
+
def generate_metadata_files(app, version, path)
|
64
|
+
# App info localizations
|
65
|
+
app_info = app.fetch_live_app_info || app.fetch_edit_app_info
|
66
|
+
app_info_localizations = app_info.get_app_info_localizations
|
67
|
+
app_info_localizations.each do |localization|
|
68
|
+
language = localization.locale
|
69
|
+
|
70
|
+
UploadMetadata::LOCALISED_APP_VALUES.each do |file_key, attribute_name|
|
71
|
+
content = localization.send(attribute_name.to_slug) || ""
|
72
|
+
content += "\n"
|
73
|
+
|
74
|
+
resulting_path = File.join(path, language, "#{file_key}.txt")
|
75
|
+
FileUtils.mkdir_p(File.expand_path('..', resulting_path))
|
76
|
+
File.write(resulting_path, content)
|
77
|
+
|
78
|
+
UI.message("Writing to '#{resulting_path}'")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# Version localizations
|
83
|
+
version_localizations = version.get_app_store_version_localizations
|
84
|
+
version_localizations.each do |localization|
|
85
|
+
language = localization.locale
|
86
|
+
|
87
|
+
UploadMetadata::LOCALISED_VERSION_VALUES.each do |file_key, attribute_name|
|
88
|
+
content = localization.send(attribute_name) || ""
|
89
|
+
content += "\n"
|
90
|
+
|
91
|
+
resulting_path = File.join(path, language, "#{file_key}.txt")
|
92
|
+
FileUtils.mkdir_p(File.expand_path('..', resulting_path))
|
93
|
+
File.write(resulting_path, content)
|
94
|
+
|
95
|
+
UI.message("Writing to '#{resulting_path}'")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# App info (categories)
|
100
|
+
UploadMetadata::NON_LOCALISED_APP_VALUES.each do |file_key, attribute_name|
|
101
|
+
category = app_info.send(attribute_name)
|
102
|
+
|
103
|
+
content = category ? category.id.to_s : ""
|
104
|
+
content += "\n"
|
105
|
+
|
106
|
+
resulting_path = File.join(path, "#{file_key}.txt")
|
107
|
+
FileUtils.mkdir_p(File.expand_path('..', resulting_path))
|
108
|
+
File.write(resulting_path, content)
|
109
|
+
|
110
|
+
UI.message("Writing to '#{resulting_path}'")
|
111
|
+
end
|
112
|
+
|
113
|
+
# Version
|
114
|
+
UploadMetadata::NON_LOCALISED_VERSION_VALUES.each do |file_key, attribute_name|
|
115
|
+
content = version.send(attribute_name) || ""
|
116
|
+
content += "\n"
|
117
|
+
|
118
|
+
resulting_path = File.join(path, "#{file_key}.txt")
|
119
|
+
FileUtils.mkdir_p(File.expand_path('..', resulting_path))
|
120
|
+
File.write(resulting_path, content)
|
121
|
+
|
122
|
+
UI.message("Writing to '#{resulting_path}'")
|
123
|
+
end
|
124
|
+
|
125
|
+
# Review information
|
126
|
+
app_store_review_detail = begin
|
127
|
+
version.fetch_app_store_review_detail
|
128
|
+
rescue
|
129
|
+
nil
|
130
|
+
end # errors if doesn't exist
|
131
|
+
UploadMetadata::REVIEW_INFORMATION_VALUES.each do |file_key, attribute_name|
|
132
|
+
if app_store_review_detail
|
133
|
+
content = app_store_review_detail.send(attribute_name) || ""
|
134
|
+
else
|
135
|
+
content = ""
|
136
|
+
end
|
137
|
+
content += "\n"
|
138
|
+
|
139
|
+
base_dir = File.join(path, UploadMetadata::REVIEW_INFORMATION_DIR)
|
140
|
+
resulting_path = File.join(base_dir, "#{file_key}.txt")
|
141
|
+
FileUtils.mkdir_p(File.expand_path('..', resulting_path))
|
142
|
+
File.write(resulting_path, content)
|
143
|
+
|
144
|
+
UI.message("Writing to '#{resulting_path}'")
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def generate_metadata_files_old(v, path)
|
60
149
|
app_details = v.application.details
|
61
150
|
|
62
151
|
# All the localised metadata
|