fastlane 2.151.0 → 2.153.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +78 -78
- data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
- 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 +94 -3
- data/deliver/lib/deliver/submit_for_review.rb +4 -6
- data/deliver/lib/deliver/upload_metadata.rb +32 -28
- data/deliver/lib/deliver/upload_price_tier.rb +1 -3
- data/deliver/lib/deliver/upload_screenshots.rb +76 -45
- data/{deliver/lib/deliver/.download_screenshots.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
- data/{spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp → fastlane/lib/fastlane/actions/.git_commit.rb.swp} +0 -0
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +3 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
- 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/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 +19 -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 +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +20 -6
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +6 -3
- data/frameit/lib/frameit/editor.rb +8 -5
- data/match/lib/match/runner.rb +4 -4
- data/pilot/lib/pilot/options.rb +6 -0
- data/scan/lib/scan/runner.rb +19 -6
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/{deliver/lib/deliver/.commands_generator.rb.swp → spaceship/lib/spaceship/connect_api/.model.rb.swp} +0 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +0 -1
- data/spaceship/lib/spaceship/connect_api/model.rb +14 -0
- data/spaceship/lib/spaceship/connect_api/{.file_uploader.rb.swp → models/.app_store_review_detail.rb.swp} +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.app_store_version.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +40 -2
- 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 +39 -64
- data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
- data/deliver/lib/deliver/.upload_screenshots.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: e8ded0a27a24b34693df005ae49f1866ecd96573336f2216b17e3e9a9f6a9c97
|
4
|
+
data.tar.gz: 7958ef7f729f86faea27e7dd77a4c55e2aaeb6cc9f2e6e3fdc754d7100207e8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc3ab6b3872cd679542b4f8555e6ebae1ae7c55c6796d77cc26e1e881fd160b7f861c8fd0379eb1106b3bc59708b11db41125de07c331fd5be9f2956ecc69e41
|
7
|
+
data.tar.gz: 485bcd979b5976d3de11ec02e8a5fcb3dbf24288e2c3222c140b2f468fd5539c6b09aeeb1a1f2185955aee6c001467256b1e0ef4dca5dcdf8c9e74a91dfdb27e
|
data/README.md
CHANGED
@@ -34,35 +34,35 @@ 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='stefan-natchev'>
|
38
|
+
<a href='https://github.com/snatchev'>
|
39
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
42
42
|
</td>
|
43
|
-
<td id='
|
44
|
-
<a href='https://github.com/
|
45
|
-
<img src='https://github.com/
|
43
|
+
<td id='jorge-revuelta-h'>
|
44
|
+
<a href='https://github.com/minuscorp'>
|
45
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
46
46
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
48
48
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
49
|
+
<td id='manu-wallner'>
|
50
|
+
<a href='https://github.com/milch'>
|
51
|
+
<img src='https://github.com/milch.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
54
54
|
</td>
|
55
|
-
<td id='
|
56
|
-
<a href='https://github.com/
|
57
|
-
<img src='https://github.com/
|
55
|
+
<td id='olivier-halligon'>
|
56
|
+
<a href='https://github.com/AliSoftware'>
|
57
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
58
58
|
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
60
60
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
61
|
+
<td id='aaron-brager'>
|
62
|
+
<a href='https://github.com/getaaron'>
|
63
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
64
64
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
65
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
66
66
|
</td>
|
67
67
|
</tr>
|
68
68
|
<tr>
|
@@ -72,37 +72,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
72
72
|
</a>
|
73
73
|
<h4 align='center'>Jimmy Dee</h4>
|
74
74
|
</td>
|
75
|
-
<td id='
|
76
|
-
<a href='https://github.com/
|
77
|
-
<img src='https://github.com/
|
78
|
-
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
80
|
-
</td>
|
81
|
-
<td id='jan-piotrowski'>
|
82
|
-
<a href='https://github.com/janpio'>
|
83
|
-
<img src='https://github.com/janpio.png?size=140'>
|
84
|
-
</a>
|
85
|
-
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
86
|
-
</td>
|
87
|
-
<td id='kohki-miki'>
|
88
|
-
<a href='https://github.com/giginet'>
|
89
|
-
<img src='https://github.com/giginet.png?size=140'>
|
90
|
-
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
92
|
-
</td>
|
93
|
-
<td id='luka-mirosevic'>
|
94
|
-
<a href='https://github.com/lmirosevic'>
|
95
|
-
<img src='https://github.com/lmirosevic.png?size=140'>
|
75
|
+
<td id='max-ott'>
|
76
|
+
<a href='https://github.com/max-ott'>
|
77
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
96
78
|
</a>
|
97
|
-
<h4 align='center'><a href='https://twitter.com/
|
79
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
98
80
|
</td>
|
99
|
-
|
100
|
-
<
|
101
|
-
<
|
102
|
-
<a href='https://github.com/endocrimes'>
|
103
|
-
<img src='https://github.com/endocrimes.png?size=140'>
|
81
|
+
<td id='maksym-grebenets'>
|
82
|
+
<a href='https://github.com/mgrebenets'>
|
83
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
104
84
|
</a>
|
105
|
-
<h4 align='center'><a href='https://twitter.com/
|
85
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
106
86
|
</td>
|
107
87
|
<td id='fumiya-nakamura'>
|
108
88
|
<a href='https://github.com/nafu'>
|
@@ -116,25 +96,51 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
116
96
|
</a>
|
117
97
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
118
98
|
</td>
|
99
|
+
</tr>
|
100
|
+
<tr>
|
101
|
+
<td id='josh-holtz'>
|
102
|
+
<a href='https://github.com/joshdholtz'>
|
103
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
104
|
+
</a>
|
105
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
106
|
+
</td>
|
107
|
+
<td id='jérôme-lacoste'>
|
108
|
+
<a href='https://github.com/lacostej'>
|
109
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
110
|
+
</a>
|
111
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
112
|
+
</td>
|
119
113
|
<td id='helmut-januschka'>
|
120
114
|
<a href='https://github.com/hjanuschka'>
|
121
115
|
<img src='https://github.com/hjanuschka.png?size=140'>
|
122
116
|
</a>
|
123
117
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
124
118
|
</td>
|
125
|
-
<td id='
|
126
|
-
<a href='https://github.com/
|
127
|
-
<img src='https://github.com/
|
119
|
+
<td id='kohki-miki'>
|
120
|
+
<a href='https://github.com/giginet'>
|
121
|
+
<img src='https://github.com/giginet.png?size=140'>
|
128
122
|
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/
|
123
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
124
|
+
</td>
|
125
|
+
<td id='matthew-ellis'>
|
126
|
+
<a href='https://github.com/matthewellis'>
|
127
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
128
|
+
</a>
|
129
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</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/
|
133
|
+
<td id='jan-piotrowski'>
|
134
|
+
<a href='https://github.com/janpio'>
|
135
|
+
<img src='https://github.com/janpio.png?size=140'>
|
136
136
|
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
138
|
+
</td>
|
139
|
+
<td id='danielle-tomlinson'>
|
140
|
+
<a href='https://github.com/endocrimes'>
|
141
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
142
|
+
</a>
|
143
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
138
144
|
</td>
|
139
145
|
<td id='daniel-jankowski'>
|
140
146
|
<a href='https://github.com/mollyIV'>
|
@@ -142,37 +148,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
142
148
|
</a>
|
143
149
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
144
150
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
148
|
-
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
150
|
-
</td>
|
151
|
-
<td id='matthew-ellis'>
|
152
|
-
<a href='https://github.com/matthewellis'>
|
153
|
-
<img src='https://github.com/matthewellis.png?size=140'>
|
151
|
+
<td id='joshua-liebowitz'>
|
152
|
+
<a href='https://github.com/taquitos'>
|
153
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
154
154
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
156
156
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
157
|
+
<td id='andrew-mcburney'>
|
158
|
+
<a href='https://github.com/armcburney'>
|
159
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
160
160
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
161
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
162
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='luka-mirosevic'>
|
172
|
+
<a href='https://github.com/lmirosevic'>
|
173
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
174
174
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
175
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
176
176
|
</td>
|
177
177
|
</table>
|
178
178
|
|
Binary file
|
@@ -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,94 @@ 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
|
+
file_key = UploadMetadata::REVIEW_INFORMATION_VALUES_LEGACY.key(file_key)
|
140
|
+
|
141
|
+
base_dir = File.join(path, UploadMetadata::REVIEW_INFORMATION_DIR)
|
142
|
+
resulting_path = File.join(base_dir, "#{file_key}.txt")
|
143
|
+
FileUtils.mkdir_p(File.expand_path('..', resulting_path))
|
144
|
+
File.write(resulting_path, content)
|
145
|
+
|
146
|
+
UI.message("Writing to '#{resulting_path}'")
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def generate_metadata_files_old(v, path)
|
60
151
|
app_details = v.application.details
|
61
152
|
|
62
153
|
# All the localised metadata
|