fastlane 2.152.0 → 2.153.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 +76 -76
- 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/runner.rb +5 -10
- data/deliver/lib/deliver/setup.rb +94 -3
- data/deliver/lib/deliver/submit_for_review.rb +1 -3
- data/deliver/lib/deliver/upload_metadata.rb +25 -22
- data/deliver/lib/deliver/upload_price_tier.rb +1 -3
- data/deliver/lib/deliver/upload_screenshots.rb +75 -44
- data/{deliver/lib/deliver/.commands_generator.rb.swp → fastlane/lib/fastlane/.erb_template_helper.rb.swp} +0 -0
- data/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/runner.rb +3 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +7 -4
- 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/frameit/lib/frameit/editor.rb +8 -5
- data/scan/lib/scan/runner.rb +19 -6
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/model.rb +10 -0
- data/spaceship/lib/spaceship/connect_api/models/.app_screenshot.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 +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 +10 -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 +34 -59
- data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
- data/deliver/lib/deliver/.upload_metadata.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: '0738d9e2b7948bc5c029fff4cc5314accc0285c7e9fa0652c7526c58d4512dbd'
|
4
|
+
data.tar.gz: 2999ba6d7c1c5784969196e9d2efe9da82561c74ac218af83e5533a7c28babaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94463ea90394a490270ec45cd7a47123cd8da45f7aa1649f302fdabc3e315864bd1366861730ca57a31748f7bd90cc39a5f6d61c67a7ecfb29eccb0be99f457e
|
7
|
+
data.tar.gz: a23b7a7e5e74c7301222b9700b8cc6b73124842530fc417987eb95b62ae7d0be65c88b190f0d22c5b847bbb9ed55ad413d1f25c6eb3a20b011ade15af119088b
|
data/README.md
CHANGED
@@ -34,49 +34,29 @@ 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/ott_max'>Max Ott</a></h4>
|
42
|
-
</td>
|
43
|
-
<td id='jimmy-dee'>
|
44
|
-
<a href='https://github.com/jdee'>
|
45
|
-
<img src='https://github.com/jdee.png?size=140'>
|
46
|
-
</a>
|
47
|
-
<h4 align='center'>Jimmy Dee</h4>
|
48
|
-
</td>
|
49
|
-
<td id='kohki-miki'>
|
50
|
-
<a href='https://github.com/giginet'>
|
51
|
-
<img src='https://github.com/giginet.png?size=140'>
|
52
|
-
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
54
|
-
</td>
|
55
|
-
<td id='olivier-halligon'>
|
56
|
-
<a href='https://github.com/AliSoftware'>
|
57
|
-
<img src='https://github.com/AliSoftware.png?size=140'>
|
37
|
+
<td id='andrew-mcburney'>
|
38
|
+
<a href='https://github.com/armcburney'>
|
39
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
58
40
|
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
60
42
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
43
|
+
<td id='josh-holtz'>
|
44
|
+
<a href='https://github.com/joshdholtz'>
|
45
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
64
46
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
66
48
|
</td>
|
67
|
-
</tr>
|
68
|
-
<tr>
|
69
49
|
<td id='daniel-jankowski'>
|
70
50
|
<a href='https://github.com/mollyIV'>
|
71
51
|
<img src='https://github.com/mollyIV.png?size=140'>
|
72
52
|
</a>
|
73
53
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
74
54
|
</td>
|
75
|
-
<td id='
|
76
|
-
<a href='https://github.com/
|
77
|
-
<img src='https://github.com/
|
55
|
+
<td id='max-ott'>
|
56
|
+
<a href='https://github.com/max-ott'>
|
57
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
78
58
|
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
80
60
|
</td>
|
81
61
|
<td id='helmut-januschka'>
|
82
62
|
<a href='https://github.com/hjanuschka'>
|
@@ -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/hjanuschka'>Helmut Januschka</a></h4>
|
86
66
|
</td>
|
87
|
-
|
88
|
-
<
|
89
|
-
<
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<td id='luka-mirosevic'>
|
70
|
+
<a href='https://github.com/lmirosevic'>
|
71
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
90
72
|
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/
|
73
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
92
74
|
</td>
|
93
75
|
<td id='fumiya-nakamura'>
|
94
76
|
<a href='https://github.com/nafu'>
|
@@ -96,31 +78,17 @@ 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/nafu003'>Fumiya Nakamura</a></h4>
|
98
80
|
</td>
|
99
|
-
|
100
|
-
<
|
101
|
-
<
|
102
|
-
<a href='https://github.com/armcburney'>
|
103
|
-
<img src='https://github.com/armcburney.png?size=140'>
|
104
|
-
</a>
|
105
|
-
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
106
|
-
</td>
|
107
|
-
<td id='iulian-onofrei'>
|
108
|
-
<a href='https://github.com/revolter'>
|
109
|
-
<img src='https://github.com/revolter.png?size=140'>
|
110
|
-
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
112
|
-
</td>
|
113
|
-
<td id='luka-mirosevic'>
|
114
|
-
<a href='https://github.com/lmirosevic'>
|
115
|
-
<img src='https://github.com/lmirosevic.png?size=140'>
|
81
|
+
<td id='olivier-halligon'>
|
82
|
+
<a href='https://github.com/AliSoftware'>
|
83
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
116
84
|
</a>
|
117
|
-
<h4 align='center'><a href='https://twitter.com/
|
85
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
118
86
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
87
|
+
<td id='kohki-miki'>
|
88
|
+
<a href='https://github.com/giginet'>
|
89
|
+
<img src='https://github.com/giginet.png?size=140'>
|
122
90
|
</a>
|
123
|
-
<h4 align='center'><a href='https://twitter.com/
|
91
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
124
92
|
</td>
|
125
93
|
<td id='felix-krause'>
|
126
94
|
<a href='https://github.com/KrauseFx'>
|
@@ -130,17 +98,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
130
98
|
</td>
|
131
99
|
</tr>
|
132
100
|
<tr>
|
133
|
-
<td id='
|
134
|
-
<a href='https://github.com/
|
135
|
-
<img src='https://github.com/
|
101
|
+
<td id='stefan-natchev'>
|
102
|
+
<a href='https://github.com/snatchev'>
|
103
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
136
104
|
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/
|
105
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
138
106
|
</td>
|
139
|
-
<td id='
|
140
|
-
<a href='https://github.com/
|
141
|
-
<img src='https://github.com/
|
107
|
+
<td id='jorge-revuelta-h'>
|
108
|
+
<a href='https://github.com/minuscorp'>
|
109
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
142
110
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
111
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
112
|
+
</td>
|
113
|
+
<td id='jimmy-dee'>
|
114
|
+
<a href='https://github.com/jdee'>
|
115
|
+
<img src='https://github.com/jdee.png?size=140'>
|
116
|
+
</a>
|
117
|
+
<h4 align='center'>Jimmy Dee</h4>
|
144
118
|
</td>
|
145
119
|
<td id='danielle-tomlinson'>
|
146
120
|
<a href='https://github.com/endocrimes'>
|
@@ -148,25 +122,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
148
122
|
</a>
|
149
123
|
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
150
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
|
+
</td>
|
131
|
+
</tr>
|
132
|
+
<tr>
|
151
133
|
<td id='manu-wallner'>
|
152
134
|
<a href='https://github.com/milch'>
|
153
135
|
<img src='https://github.com/milch.png?size=140'>
|
154
136
|
</a>
|
155
137
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
156
138
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<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'>
|
160
142
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
162
144
|
</td>
|
163
|
-
|
164
|
-
<
|
165
|
-
<
|
166
|
-
<a href='https://github.com/minuscorp'>
|
167
|
-
<img src='https://github.com/minuscorp.png?size=140'>
|
145
|
+
<td id='iulian-onofrei'>
|
146
|
+
<a href='https://github.com/revolter'>
|
147
|
+
<img src='https://github.com/revolter.png?size=140'>
|
168
148
|
</a>
|
169
|
-
<h4 align='center'><a href='https://twitter.com/
|
149
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
170
150
|
</td>
|
171
151
|
<td id='maksym-grebenets'>
|
172
152
|
<a href='https://github.com/mgrebenets'>
|
@@ -174,6 +154,26 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
174
154
|
</a>
|
175
155
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
176
156
|
</td>
|
157
|
+
<td id='joshua-liebowitz'>
|
158
|
+
<a href='https://github.com/taquitos'>
|
159
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
160
|
+
</a>
|
161
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
162
|
+
</td>
|
163
|
+
</tr>
|
164
|
+
<tr>
|
165
|
+
<td id='aaron-brager'>
|
166
|
+
<a href='https://github.com/getaaron'>
|
167
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
168
|
+
</a>
|
169
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
170
|
+
</td>
|
171
|
+
<td id='jan-piotrowski'>
|
172
|
+
<a href='https://github.com/janpio'>
|
173
|
+
<img src='https://github.com/janpio.png?size=140'>
|
174
|
+
</a>
|
175
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
176
|
+
</td>
|
177
177
|
</table>
|
178
178
|
|
179
179
|
Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
|
@@ -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]
|
@@ -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
|