fastlane 2.151.1 → 2.154.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 +74 -74
- 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 +36 -31
- 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 +53 -32
- data/deliver/lib/deliver/upload_price_tier.rb +1 -3
- data/deliver/lib/deliver/upload_screenshots.rb +76 -45
- data/{deliver/lib/deliver/.commands_generator.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
- data/{frameit/lib/frameit/.editor.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/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/upload_to_testflight.rb +11 -3
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +1 -1
- 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 +47 -13
- 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 +5 -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 +5 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +25 -6
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +6 -3
- data/frameit/lib/frameit/editor.rb +11 -6
- data/gym/lib/gym/module.rb +8 -0
- data/gym/lib/gym/runner.rb +16 -9
- data/match/lib/match/options.rb +9 -2
- data/match/lib/match/runner.rb +5 -4
- data/match/lib/match/storage/git_storage.rb +16 -2
- 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/snapshot/lib/snapshot/options.rb +5 -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/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +3 -3
- data/spaceship/lib/spaceship/connect_api/model.rb +14 -0
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +59 -3
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +5 -4
- 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/idfa_declaration.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +32 -1
- metadata +37 -64
- data/deliver/lib/deliver/.download_screenshots.rb.swp +0 -0
- data/deliver/lib/deliver/.submit_for_review.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: 70c5a33bcf7a92f427b7c09b26e1269a00807a2975f484c6be1159df830a0ffb
|
4
|
+
data.tar.gz: 36610a4cd508042f7a9632fe30088e84609b805bb6722f5b2752589a69cce12a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6195726b19d99f0d0b7b8980e2facb389f18189bbba530d09d7dabdc60c6959e1a00b7bc4c4f8c43a0b6bdfc4211d580909ef8e941a83fb061583bae1eec0cae
|
7
|
+
data.tar.gz: f0854bb26324cb229428f971159d2b7713fb137ef5c37dff1eee843bb52652afc3bf4621bf98aa0438b94fa476971bd064546ad4a5780108dba4475f438c74a8
|
data/README.md
CHANGED
@@ -34,23 +34,17 @@ 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/
|
40
|
-
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
42
|
-
</td>
|
43
|
-
<td id='stefan-natchev'>
|
44
|
-
<a href='https://github.com/snatchev'>
|
45
|
-
<img src='https://github.com/snatchev.png?size=140'>
|
37
|
+
<td id='jérôme-lacoste'>
|
38
|
+
<a href='https://github.com/lacostej'>
|
39
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
46
40
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
48
42
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
43
|
+
<td id='kohki-miki'>
|
44
|
+
<a href='https://github.com/giginet'>
|
45
|
+
<img src='https://github.com/giginet.png?size=140'>
|
52
46
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
54
48
|
</td>
|
55
49
|
<td id='maksym-grebenets'>
|
56
50
|
<a href='https://github.com/mgrebenets'>
|
@@ -58,25 +52,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
58
52
|
</a>
|
59
53
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
60
54
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
64
|
-
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
66
|
-
</td>
|
67
|
-
</tr>
|
68
|
-
<tr>
|
69
|
-
<td id='jimmy-dee'>
|
70
|
-
<a href='https://github.com/jdee'>
|
71
|
-
<img src='https://github.com/jdee.png?size=140'>
|
72
|
-
</a>
|
73
|
-
<h4 align='center'>Jimmy Dee</h4>
|
74
|
-
</td>
|
75
|
-
<td id='andrew-mcburney'>
|
76
|
-
<a href='https://github.com/armcburney'>
|
77
|
-
<img src='https://github.com/armcburney.png?size=140'>
|
55
|
+
<td id='daniel-jankowski'>
|
56
|
+
<a href='https://github.com/mollyIV'>
|
57
|
+
<img src='https://github.com/mollyIV.png?size=140'>
|
78
58
|
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
80
60
|
</td>
|
81
61
|
<td id='olivier-halligon'>
|
82
62
|
<a href='https://github.com/AliSoftware'>
|
@@ -84,11 +64,13 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
84
64
|
</a>
|
85
65
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
86
66
|
</td>
|
87
|
-
|
88
|
-
<
|
89
|
-
<
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<td id='stefan-natchev'>
|
70
|
+
<a href='https://github.com/snatchev'>
|
71
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
90
72
|
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/
|
73
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
92
74
|
</td>
|
93
75
|
<td id='jan-piotrowski'>
|
94
76
|
<a href='https://github.com/janpio'>
|
@@ -96,31 +78,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
96
78
|
</a>
|
97
79
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
98
80
|
</td>
|
99
|
-
|
100
|
-
<
|
81
|
+
<td id='helmut-januschka'>
|
82
|
+
<a href='https://github.com/hjanuschka'>
|
83
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
84
|
+
</a>
|
85
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</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>
|
101
93
|
<td id='iulian-onofrei'>
|
102
94
|
<a href='https://github.com/revolter'>
|
103
95
|
<img src='https://github.com/revolter.png?size=140'>
|
104
96
|
</a>
|
105
97
|
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
106
98
|
</td>
|
107
|
-
|
108
|
-
<
|
109
|
-
<
|
99
|
+
</tr>
|
100
|
+
<tr>
|
101
|
+
<td id='danielle-tomlinson'>
|
102
|
+
<a href='https://github.com/endocrimes'>
|
103
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
110
104
|
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
105
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
112
106
|
</td>
|
113
|
-
<td id='
|
114
|
-
<a href='https://github.com/
|
115
|
-
<img src='https://github.com/
|
107
|
+
<td id='josh-holtz'>
|
108
|
+
<a href='https://github.com/joshdholtz'>
|
109
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
116
110
|
</a>
|
117
|
-
<h4 align='center'><a href='https://twitter.com/
|
111
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
118
112
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
113
|
+
<td id='jimmy-dee'>
|
114
|
+
<a href='https://github.com/jdee'>
|
115
|
+
<img src='https://github.com/jdee.png?size=140'>
|
122
116
|
</a>
|
123
|
-
<h4 align='center'
|
117
|
+
<h4 align='center'>Jimmy Dee</h4>
|
124
118
|
</td>
|
125
119
|
<td id='joshua-liebowitz'>
|
126
120
|
<a href='https://github.com/taquitos'>
|
@@ -128,25 +122,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
128
122
|
</a>
|
129
123
|
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
130
124
|
</td>
|
131
|
-
|
132
|
-
<
|
133
|
-
<
|
134
|
-
<a href='https://github.com/endocrimes'>
|
135
|
-
<img src='https://github.com/endocrimes.png?size=140'>
|
125
|
+
<td id='andrew-mcburney'>
|
126
|
+
<a href='https://github.com/armcburney'>
|
127
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
136
128
|
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/
|
129
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
138
130
|
</td>
|
139
|
-
|
140
|
-
<
|
141
|
-
<
|
131
|
+
</tr>
|
132
|
+
<tr>
|
133
|
+
<td id='manu-wallner'>
|
134
|
+
<a href='https://github.com/milch'>
|
135
|
+
<img src='https://github.com/milch.png?size=140'>
|
142
136
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
144
138
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
139
|
+
<td id='matthew-ellis'>
|
140
|
+
<a href='https://github.com/matthewellis'>
|
141
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
148
142
|
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
150
144
|
</td>
|
151
145
|
<td id='felix-krause'>
|
152
146
|
<a href='https://github.com/KrauseFx'>
|
@@ -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/KrauseFx'>Felix Krause</a></h4>
|
156
150
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
151
|
+
<td id='jorge-revuelta-h'>
|
152
|
+
<a href='https://github.com/minuscorp'>
|
153
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
160
154
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
162
156
|
</td>
|
163
|
-
</tr>
|
164
|
-
<tr>
|
165
157
|
<td id='aaron-brager'>
|
166
158
|
<a href='https://github.com/getaaron'>
|
167
159
|
<img src='https://github.com/getaaron.png?size=140'>
|
168
160
|
</a>
|
169
161
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
170
162
|
</td>
|
171
|
-
|
172
|
-
<
|
173
|
-
<
|
163
|
+
</tr>
|
164
|
+
<tr>
|
165
|
+
<td id='max-ott'>
|
166
|
+
<a href='https://github.com/max-ott'>
|
167
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
174
168
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
169
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
170
|
+
</td>
|
171
|
+
<td id='luka-mirosevic'>
|
172
|
+
<a href='https://github.com/lmirosevic'>
|
173
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
174
|
+
</a>
|
175
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</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]
|
@@ -28,42 +26,49 @@ module Deliver
|
|
28
26
|
end
|
29
27
|
|
30
28
|
localizations = version.get_app_store_version_localizations
|
29
|
+
threads = []
|
31
30
|
localizations.each do |localization|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
url = screenshot.image_asset_url(type: original_file_extension)
|
40
|
-
next if url.nil?
|
31
|
+
threads << Thread.new do
|
32
|
+
download_screenshots(folder_path, localization)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
threads.each(&:join)
|
36
|
+
end
|
41
37
|
|
42
|
-
|
38
|
+
def self.download_screenshots(folder_path, localization)
|
39
|
+
language = localization.locale
|
40
|
+
screenshot_sets = localization.get_app_screenshot_sets
|
41
|
+
screenshot_sets.each do |screenshot_set|
|
42
|
+
screenshot_set.app_screenshots.each_with_index do |screenshot, index|
|
43
|
+
file_name = [index, screenshot_set.screenshot_display_type, index].join("_")
|
44
|
+
original_file_extension = File.extname(screenshot.file_name).strip.downcase[1..-1]
|
45
|
+
file_name += "." + original_file_extension
|
43
46
|
|
44
|
-
|
47
|
+
url = screenshot.image_asset_url(type: original_file_extension)
|
48
|
+
next if url.nil?
|
45
49
|
|
46
|
-
|
47
|
-
# screen shot later as the screen size is the same as an iPhone 6 Plus in landscape.
|
48
|
-
if screenshot_set.apple_tv?
|
49
|
-
containing_folder = File.join(folder_path, "appleTV", language)
|
50
|
-
else
|
51
|
-
containing_folder = File.join(folder_path, language)
|
52
|
-
end
|
50
|
+
UI.message("Downloading existing screenshot '#{file_name}' for language '#{language}'")
|
53
51
|
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
# If the screen shot is for an appleTV we need to store it in a way that we'll know it's an appleTV
|
53
|
+
# screen shot later as the screen size is the same as an iPhone 6 Plus in landscape.
|
54
|
+
if screenshot_set.apple_tv?
|
55
|
+
containing_folder = File.join(folder_path, "appleTV", language)
|
56
|
+
else
|
57
|
+
containing_folder = File.join(folder_path, language)
|
58
|
+
end
|
57
59
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
# if it's already there
|
62
|
-
end
|
60
|
+
if screenshot_set.imessage?
|
61
|
+
containing_folder = File.join(folder_path, "iMessage", language)
|
62
|
+
end
|
63
63
|
|
64
|
-
|
65
|
-
|
64
|
+
begin
|
65
|
+
FileUtils.mkdir_p(containing_folder)
|
66
|
+
rescue
|
67
|
+
# if it's already there
|
66
68
|
end
|
69
|
+
|
70
|
+
path = File.join(containing_folder, file_name)
|
71
|
+
File.binwrite(path, open(url).read)
|
67
72
|
end
|
68
73
|
end
|
69
74
|
end
|
@@ -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
|