deliver 0.13.5 → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -208
- data/bin/deliver +1 -1
- data/lib/assets/DeliverfileDefault +2 -22
- data/lib/assets/summary.html.erb +27 -39
- data/lib/deliver.rb +16 -14
- data/lib/deliver/app_screenshot.rb +43 -33
- data/lib/deliver/commands_generator.rb +30 -108
- data/lib/deliver/detect_values.rb +23 -0
- data/lib/deliver/download_screenshots.rb +30 -9
- data/lib/deliver/html_generator.rb +7 -8
- data/lib/deliver/options.rb +126 -0
- data/lib/deliver/runner.rb +75 -0
- data/lib/deliver/setup.rb +84 -0
- data/lib/deliver/submit_for_review.rb +60 -0
- data/lib/deliver/upload_assets.rb +22 -0
- data/lib/deliver/upload_metadata.rb +100 -0
- data/lib/deliver/upload_price_tier.rb +21 -0
- data/lib/deliver/upload_screenshots.rb +63 -0
- data/lib/deliver/version.rb +2 -1
- metadata +37 -62
- data/lib/assets/DeliverLanguageMapping.json +0 -187
- data/lib/assets/DeliverfileExample +0 -38
- data/lib/deliver/app.rb +0 -167
- data/lib/deliver/app_metadata.rb +0 -419
- data/lib/deliver/app_metadata_screenshots.rb +0 -189
- data/lib/deliver/deliver_process.rb +0 -426
- data/lib/deliver/deliverer.rb +0 -138
- data/lib/deliver/deliverfile/deliverfile.rb +0 -35
- data/lib/deliver/deliverfile/deliverfile_creator.rb +0 -135
- data/lib/deliver/deliverfile/dsl.rb +0 -142
- data/lib/deliver/dependency_checker.rb +0 -19
- data/lib/deliver/ipa_file_analyser.rb +0 -44
- data/lib/deliver/ipa_uploader.rb +0 -148
- data/lib/deliver/itunes_connect/itunes_connect.rb +0 -12
- data/lib/deliver/itunes_connect/itunes_connect_additional.rb +0 -105
- data/lib/deliver/itunes_connect/itunes_connect_app_icon.rb +0 -41
- data/lib/deliver/itunes_connect/itunes_connect_app_rating.rb +0 -90
- data/lib/deliver/itunes_connect/itunes_connect_apple_watch_app_icon.rb +0 -42
- data/lib/deliver/itunes_connect/itunes_connect_information.rb +0 -34
- data/lib/deliver/itunes_connect/itunes_connect_new_version.rb +0 -67
- data/lib/deliver/itunes_connect/itunes_connect_reader.rb +0 -46
- data/lib/deliver/itunes_connect/itunes_connect_screenshot_fetcher.rb +0 -54
- data/lib/deliver/itunes_connect/itunes_connect_submission.rb +0 -282
- data/lib/deliver/itunes_transporter.rb +0 -221
- data/lib/deliver/metadata_item.rb +0 -94
- data/lib/deliver/testflight.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed7a41394af9241c8a2ed2f2c9c54a5f49321a6f
|
4
|
+
data.tar.gz: 053f44c89fc589950c6c63fa5ca33756fc3e7834
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4223c4244c5252bddef2302e897ec5f51cdf401a565aa71d0d0cdfbf9794cd5be450511e0e3a4826d46c0a52cc8e0072f2379a6b27a8a3351e3450cc3ea07ef3
|
7
|
+
data.tar.gz: d07d9abac75c63994e98d3f2741901760cd77e7c8c99109f0dcc817cabec19f1f418ae8a6a6f0336cc960115e0e3ea15e49087bdc3d29c3bd9ad4eaa28b76c55
|
data/README.md
CHANGED
@@ -43,7 +43,6 @@ Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/Kr
|
|
43
43
|
-------
|
44
44
|
<p align="center">
|
45
45
|
<a href="#features">Features</a> •
|
46
|
-
<a href="#testflight">TestFlight</a> •
|
47
46
|
<a href="#installation">Installation</a> •
|
48
47
|
<a href="#quick-start">Quick Start</a> •
|
49
48
|
<a href="#usage">Usage</a> •
|
@@ -64,7 +63,6 @@ Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/Kr
|
|
64
63
|
- Store the configuration in git to easily deploy from **any** computer, including your Continuous Integration server (e.g. Jenkins)
|
65
64
|
- Get a PDF preview of the fetched metadata before uploading the app metadata and screenshots to Apple: [Example Preview](https://github.com/krausefx/deliver/blob/master/assets/PDFExample.png?raw=1)
|
66
65
|
- Automatically create new screenshots with [snapshot](https://github.com/KrauseFx/snapshot)
|
67
|
-
- Upload new builds to the new Apple TestFlight
|
68
66
|
|
69
67
|
##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
|
70
68
|
|
@@ -80,233 +78,39 @@ Make sure, you have the latest version of the Xcode command line tools installed
|
|
80
78
|
|
81
79
|
To create new screenshots automatically, check out my other open source project [snapshot](https://github.com/KrauseFx/snapshot).
|
82
80
|
|
83
|
-
|
84
|
-
|
85
|
-
**New**: To upload builds to TestFlight, use the new [pilot](https://github.com/fastlane/pilot) tool.
|
86
|
-
|
87
|
-
Upload a new build to Apple `TestFlight` use the following command:
|
88
|
-
|
89
|
-
```
|
90
|
-
deliver testflight
|
91
|
-
```
|
92
|
-
|
93
|
-
This will automatically look for an ipa file in the current directory.
|
94
|
-
|
95
|
-
`deliver` currently supports **Internal Testers** only.
|
96
|
-
|
97
|
-
Make sure to increase your build number before building and uploading your app.
|
98
|
-
|
99
|
-
#### More options:
|
100
|
-
|
101
|
-
Specify the `ipa` file, the Apple ID and app identifier to be used:
|
102
|
-
|
103
|
-
```
|
104
|
-
deliver testflight ./my_app.ipa -u felix@krausefx.com -a 862582703
|
105
|
-
```
|
106
|
-
|
107
|
-
To build and upload the ipa in one step, you can use [shenzhen](https://github.com/nomad/shenzhen):
|
108
|
-
|
109
|
-
```
|
110
|
-
ipa build && deliver testflight
|
111
|
-
```
|
112
|
-
|
113
|
-
You can pass the "What to Test" value using the environment variable `DELIVER_WHAT_TO_TEST`:
|
114
|
-
|
115
|
-
```
|
116
|
-
DELIVER_WHAT_TO_TEST="Try the brand new project button" deliver testflight
|
117
|
-
```
|
118
|
-
|
119
|
-
Additional environment variables: `DELIVER_BETA_DESCRIPTION`, `DELIVER_BETA_FEEDBACK_EMAIL`.
|
81
|
+
To upload builds to TestFlight check out [pilot](https://github.com/fastlane/pilot).
|
120
82
|
|
121
83
|
# Quick Start
|
122
84
|
|
123
|
-
|
124
85
|
The guide will create all the necessary files for you, using the existing app metadata from iTunes Connect.
|
125
86
|
|
126
87
|
- ```cd [your_project_folder]```
|
127
88
|
- ```deliver init```
|
128
|
-
-
|
129
|
-
|
130
|
-
|
131
|
-
- Enjoy a good drink, while the computer does all the work for you
|
132
|
-
- When it's a new app: ```n```
|
133
|
-
|
134
|
-
From now on, you can run ```deliver``` to deploy a new update, or just upload new app metadata and screenshots.
|
135
|
-
|
136
|
-
### Customize the ```Deliverfile```
|
137
|
-
Open the ```Deliverfile``` using a text editor and customize it even further. Take a look at the following settings:
|
89
|
+
- Enter your iTunes Connect credentials
|
90
|
+
- Enter your app identifier
|
91
|
+
- Enjoy a good drink, while the computer does all the work for you
|
138
92
|
|
139
|
-
|
140
|
-
- ```unit_tests```: Uncomment the code to run tests. (e.g. using [xctool](https://github.com/facebook/xctool)). It is recommended to use [fastlane](https://fastlane.tools) for running tests.
|
93
|
+
From now on, you can run `deliver` to deploy a new update, or just upload new app metadata and screenshots.
|
141
94
|
|
142
95
|
# Usage
|
143
96
|
|
144
|
-
|
145
|
-
|
146
|
-
Store your configuration in a text file to easily deploy from any computer.
|
147
|
-
|
148
|
-
Run ```deliver init``` to create a new ```Deliverfile```. You can either let the wizard generate a file based on the metadata from iTunes Connect or create one from a template.
|
149
|
-
|
150
|
-
Once you created your configuration, just run ```deliver```.
|
151
|
-
|
152
|
-
All available commands with a short description can be found in [Deliverfile.md](https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md).
|
153
|
-
|
154
|
-
Here are a few examples:
|
155
|
-
#### Upload screenshots to iTunes Connect
|
156
|
-
|
157
|
-
Remove the rest, and use just this format for your ```Deliverfile```.
|
158
|
-
|
159
|
-
```ruby
|
160
|
-
app_identifier "net.sunapps.1"
|
161
|
-
version "1.1"
|
162
|
-
|
163
|
-
screenshots_path "./screenshots"
|
164
|
-
```
|
165
|
-
The screenshots folder must include one subfolder per language (see [Available language codes](#available-language-codes)).
|
166
|
-
|
167
|
-
The screenshots are ordered alphabetically. The best way to sort them is to prepend a number before the actual screenshot name. You can also put Watch screenshots into this folder.
|
168
|
-
|
169
|
-
To let the computer create the screenshots for you, checkout [this section of the README](#automatically-create-screenshots).
|
170
|
-
|
171
|
-
If you want to have the screenshots inside a device frame, with a background and a fancy label on top, you can use [Sketch to App Store](http://sketchtoappstore.com/).
|
172
|
-
|
173
|
-
To download all existing screenshots, use `deliver download_screenshots`.
|
174
|
-
|
175
|
-
#### Update App description, keywords and more
|
176
|
-
|
177
|
-
If you used `deliver init`, take a look at the `./metadata/` folder, which contains your app description, keywords and app title. If you change the content of the files, it will get updated when you run `deliver`.
|
178
|
-
|
179
|
-
#### Upload a new ipa file with a changelog to the App Store
|
180
|
-
This will submit a new update to Apple
|
181
|
-
```ruby
|
182
|
-
ipa do
|
183
|
-
system("ipa build")
|
184
|
-
"./name.ipa"
|
185
|
-
end
|
186
|
-
|
187
|
-
changelog(
|
188
|
-
"en-US" => "This update adds cool new features",
|
189
|
-
"de-DE" => "Dieses Update ist super"
|
190
|
-
)
|
191
|
-
```
|
192
|
-
If you wish to skip automated submission to review you can provide `--skip-deploy` option when calling `deliver`. This will upload the ipa file and app metadata, but will not submit the app for review.
|
193
|
-
|
194
|
-
The changelog is only used for App Store submission, not for TestFlight builds.
|
195
|
-
|
196
|
-
It is recommended to use `deliver` in combination with [fastlane](https://github.com/KrauseFx/fastlane) to build the app using `xcodebuild`.
|
197
|
-
|
198
|
-
#### Upload a new ipa for TestFlight beta testers
|
199
|
-
|
200
|
-
In order to upload an `.ipa` file for Apple TestFlight you need to specify `beta_ipa` path in your `Deliverfile`
|
201
|
-
|
202
|
-
```ruby
|
203
|
-
beta_ipa do
|
204
|
-
system("ipa build")
|
205
|
-
"./name.ipa"
|
206
|
-
end
|
207
|
-
```
|
208
|
-
|
209
|
-
and provide `--beta` option when calling `deliver`. When running `deliver` with the `--beta` flag enabled, it will **not** upload new app metadata.
|
210
|
-
|
211
|
-
#### Implement blocks to run unit tests
|
212
|
-
If you're using [fastlane](http://github.com/krausefx/fastlane), run tests and error blocks there.
|
213
|
-
|
214
|
-
If you only use `deliver`, you can use the following blocks:
|
215
|
-
|
216
|
-
```ruby
|
217
|
-
unit_tests do
|
218
|
-
system("xctool test")
|
219
|
-
end
|
220
|
-
|
221
|
-
success do
|
222
|
-
system("Say 'success'")
|
223
|
-
end
|
224
|
-
|
225
|
-
error do |information|
|
226
|
-
# custom exception handling here
|
227
|
-
raise "Something went wrong: #{information['error']}"
|
228
|
-
end
|
229
|
-
```
|
230
|
-
|
231
|
-
#### Read content from somewhere external (file, web service, ...)
|
232
|
-
```ruby
|
233
|
-
description(
|
234
|
-
"en-US" => File.read("description-en.txt")
|
235
|
-
"de-DE" => open("http://example.com/app_description.txt").read
|
236
|
-
)
|
237
|
-
```
|
238
|
-
|
239
|
-
#### Build and sign the app
|
240
|
-
I'm using [Shenzhen](https://github.com/nomad/shenzhen), but you can use any build tool or custom scripts.
|
241
|
-
```ruby
|
242
|
-
ipa do
|
243
|
-
# Add any code you want, like incrementing the build
|
244
|
-
# number or changing the app identifier
|
245
|
-
|
246
|
-
system("ipa build --verbose") # build your project using Shenzhen
|
247
|
-
"./AppName.ipa" # Tell 'deliver' where it can find the finished ipa file
|
248
|
-
end
|
249
|
-
```
|
250
|
-
|
251
|
-
#### Hide the iTunes Transporter log
|
252
|
-
By default, the transporter log is shown, to be fully transparent. If you prefer to hide it, you can use the following option in your ```Deliverfile``` to disable it for both the upload and the download of metadata:
|
253
|
-
```ruby
|
254
|
-
hide_transporter_output
|
255
|
-
```
|
256
|
-
|
257
|
-
##### What is the ```Deliverfile```?
|
258
|
-
As you can see, the ```Deliverfile``` is a normal Ruby file, which is executed when
|
259
|
-
running a deployment. Therefore it's possible to fully customise the behaviour
|
260
|
-
on a deployment.
|
261
|
-
|
262
|
-
All available commands with a short description can be found in [Deliverfile.md](https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md).
|
263
|
-
|
264
|
-
**Some examples:**
|
265
|
-
|
266
|
-
- Run your own unit tests or integration tests before a deploy (recommended)
|
267
|
-
- Ask the script user for a changelog
|
268
|
-
- Deploy a new version just by starting a Jenkins job
|
269
|
-
- Post the deployment status on Slack
|
270
|
-
- Upload the latest screenshots to your server
|
271
|
-
|
272
|
-
For further actions, check out [fastlane](https://github.com/KrauseFx/fastlane)
|
273
|
-
|
274
|
-
#### Use the exposed Ruby classes
|
275
|
-
Some examples:
|
276
|
-
```ruby
|
277
|
-
require 'deliver'
|
278
|
-
|
279
|
-
app = Deliver::App.new(app_identifier: 'com.krausefx.app')
|
280
|
-
|
281
|
-
app.get_app_status # => Waiting for Review
|
282
|
-
app.create_new_version!("1.4")
|
283
|
-
app.metadata.update_title("en-US" => "iPhone App Title")
|
284
|
-
app.metadata.set_all_screenshots_from_path("./screenshots")
|
285
|
-
app.upload_metadata!
|
286
|
-
app.itc.submit_for_review!(app)
|
287
|
-
|
288
|
-
FastlaneCore::ItunesSearchApi.fetch_by_identifier("net.sunapps.15") # => Fetches public metadata
|
289
|
-
```
|
290
|
-
This project is well documented, check it out on [RubyDoc](http://www.rubydoc.info/github/KrauseFx/deliver/frames).
|
291
|
-
|
97
|
+
TODO
|
292
98
|
|
293
99
|
# Credentials
|
294
100
|
|
295
101
|
A detailed description about your credentials is available on a [separate repo](https://github.com/fastlane/CredentialsManager).
|
296
102
|
|
297
|
-
|
298
103
|
# Can I trust `deliver`?
|
299
104
|
###How does this thing even work? Is magic involved? 🎩###
|
300
105
|
|
301
106
|
`deliver` is fully open source, you can take a look at its source files. It will only modify the content you want to modify using the ```Deliverfile```. Your password will be stored in the Mac OS X keychain, but can also be passed using environment variables. (More information available on [CredentialsManager](https://github.com/fastlane/CredentialsManager))
|
302
107
|
|
303
|
-
Before actually uploading anything to iTunes, ```deliver``` will generate a [
|
108
|
+
Before actually uploading anything to iTunes, ```deliver``` will generate a [HTML summary](https://github.com/krausefx/deliver/blob/master/assets/PDFExample.png?raw=1) of the collected data.
|
304
109
|
|
305
110
|
```deliver``` uses the following techniques under the hood:
|
306
111
|
|
307
|
-
- The iTMSTransporter tool is used to
|
308
|
-
-
|
309
|
-
- The iTunes search API to find missing information about a certain app, like the *apple_id* when you only pass the *bundle_identifier*.
|
112
|
+
- The iTMSTransporter tool is used to upload the binary to iTunes Connect. iTMSTransporter is a command line tool provided by Apple.
|
113
|
+
- For all metadata related actions `deliver` uses [spaceship](https://github.com/fastlane/spaceship)
|
310
114
|
|
311
115
|
# Tips
|
312
116
|
|
@@ -332,9 +136,6 @@ Before actually uploading anything to iTunes, ```deliver``` will generate a [PDF
|
|
332
136
|
"da", "de-DE", "el", "en-AU", "en-CA", "en-GB", "en-US", "es-ES", "es-MX", "fi", "fr-CA", "fr-FR", "id", "it", "ja", "ko", "ms", "nl", "no", "pt-BR", "pt-PT", "ru", "sv", "th", "tr", "vi", "zh-Hans", "zh-Hant"
|
333
137
|
```
|
334
138
|
|
335
|
-
## Use a clean status bar
|
336
|
-
You can use [SimulatorStatusMagic](https://github.com/shinydevelopment/SimulatorStatusMagic) to clean up the status bar.
|
337
|
-
|
338
139
|
## Automatically create screenshots
|
339
140
|
|
340
141
|
If you want to integrate ```deliver``` with ```snapshot```, check out [fastlane](https://github.com/KrauseFx/fastlane)!
|
data/bin/deliver
CHANGED
@@ -1,30 +1,10 @@
|
|
1
|
-
###################### App Metadata ######################
|
2
|
-
# Update the app description and metadata in the ./metadata folder
|
3
|
-
|
4
|
-
###################### Screenshots ######################
|
5
|
-
# Store all screenshots in the ./screenshots folder separated
|
6
|
-
# by language. If you use snapshot, this happens automatically
|
7
|
-
|
8
|
-
###################### IPA File ######################
|
9
|
-
# This part is only relevant, if you want to submit a new binary
|
10
|
-
# If you don't use fastlane (https://github.com/KrauseFx/fastlane)
|
11
|
-
# you can set the path to your ipa file using:
|
12
|
-
# ipa "./app.ipa"
|
13
|
-
|
14
|
-
# to provide an ipa file for TestFlight distribution, use beta_ipa
|
15
|
-
# beta_ipa "./app.ipa"
|
16
|
-
|
17
|
-
# The version of your app - remove this if you provide an ipa file
|
18
|
-
version "[[APP_VERSION]]"
|
19
|
-
|
20
1
|
###################### More Options ######################
|
21
2
|
# If you want to have even more control, check out the documentation
|
22
3
|
# https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
23
4
|
|
24
5
|
|
25
6
|
###################### Automatically generated ######################
|
26
|
-
# Feel free to remove the following
|
7
|
+
# Feel free to remove the following line if you use fastlane (which you should)
|
27
8
|
|
28
9
|
app_identifier "[[APP_IDENTIFIER]]" # The bundle identifier of your app
|
29
|
-
|
30
|
-
email "[[EMAIL]]" # the login email address
|
10
|
+
username "[[USERNAME]]" # your Apple ID user
|
data/lib/assets/summary.html.erb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<html>
|
2
2
|
<head>
|
3
|
-
<title>deliver - <%= @
|
3
|
+
<title>deliver - <%= @options[:name]["en-US"] || @options[:name].values.first %></title>
|
4
4
|
<meta http-equiv="content-type" content="text/html; charset=UTF-16">
|
5
5
|
<style>
|
6
6
|
#app-name {
|
@@ -106,65 +106,57 @@
|
|
106
106
|
margin-left: 10px;
|
107
107
|
margin-right: 10px;
|
108
108
|
}
|
109
|
-
|
110
|
-
/*for highlighting a changed value*/
|
111
|
-
.modified {
|
112
|
-
color: #0056ba;
|
113
|
-
}
|
114
109
|
</style>
|
115
110
|
</head>
|
116
|
-
|
117
|
-
<%
|
118
|
-
def modified?(val)
|
119
|
-
"modified" if (val and val[:modified] == true)
|
120
|
-
end
|
121
|
-
%>
|
122
111
|
|
123
112
|
<body>
|
124
|
-
<% @
|
125
|
-
<div id="app-name"
|
126
|
-
<%= language %>: <%=
|
113
|
+
<% @options[:description].keys.each do |language| %>
|
114
|
+
<div id="app-name">
|
115
|
+
<%= language %>: <%= @options[:name][language] %>
|
127
116
|
</div>
|
128
117
|
|
129
118
|
<div id="app-urls">
|
130
|
-
<% all_keys = [:support_url, :
|
119
|
+
<% all_keys = [:support_url, :marketing_url] %>
|
131
120
|
<% all_keys.each do |key| %>
|
132
|
-
<% value =
|
121
|
+
<% value = @options[key][language] %>
|
133
122
|
<% if value %>
|
134
|
-
<div class="app-url-descr
|
123
|
+
<div class="app-url-descr">
|
135
124
|
<%= key %>: <a target="_blank" class="app-url" href="<%= value %>"><%= value %></a>
|
136
125
|
</div>
|
137
126
|
<% end %>
|
138
127
|
<% end %>
|
139
128
|
</div>
|
140
129
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
130
|
+
<% if @options[:keywords] and @options[:keywords][language] %>
|
131
|
+
<div id="app-keyword">
|
132
|
+
<div class="cat-headline">Keywords</div>
|
133
|
+
<ul class="app-keyword-list">
|
134
|
+
<% @options[:keywords][language].split(" ").each do |keyword| %>
|
135
|
+
<li><%= keyword %></li>
|
136
|
+
<% end %>
|
137
|
+
</ul>
|
138
|
+
</div>
|
139
|
+
<% end %>
|
149
140
|
|
150
|
-
<div id="app-description"
|
141
|
+
<div id="app-description">
|
151
142
|
<div class="cat-headline">Description</div>
|
152
143
|
<div id="app-description-text">
|
153
|
-
<%=
|
144
|
+
<%= (@options[:description][language] || '').gsub("\n", "<br />") %>
|
154
145
|
</div>
|
155
146
|
</div>
|
156
147
|
|
157
|
-
<div id="app-changelog"
|
148
|
+
<div id="app-changelog">
|
158
149
|
<div class="cat-headline">Changelog</div>
|
159
|
-
<%=
|
150
|
+
<%= (@options[:release_notes][language] || '').gsub("\n", "<br />") %>
|
160
151
|
</div>
|
161
152
|
|
162
153
|
<div id="app-screenshots">
|
163
154
|
<div class="cat-headline">Screenshots</div>
|
164
155
|
|
165
|
-
<% if
|
156
|
+
<% if @screenshots.count > 0 %>
|
166
157
|
<% last_size = nil %>
|
167
|
-
<%
|
158
|
+
<% sc = @screenshots.find_all { |s| s.language == language } %>
|
159
|
+
<% sc.sort {|a, b| [a.screen_size, a.path] <=> [b.screen_size, b.path]}.each do |screenshot| %>
|
168
160
|
|
169
161
|
<% new_row = (last_size != screenshot.screen_size or last_size == nil) %>
|
170
162
|
|
@@ -173,7 +165,7 @@
|
|
173
165
|
<% end %>
|
174
166
|
|
175
167
|
<% if new_row %>
|
176
|
-
<h4><%= screenshot.
|
168
|
+
<h4><%= screenshot.formatted_name %></h4>
|
177
169
|
<div class="app-screenshot-row">
|
178
170
|
<% end %>
|
179
171
|
|
@@ -186,19 +178,15 @@
|
|
186
178
|
<div style="border: 3px solid red; padding: 0px 20px">
|
187
179
|
<h2 style="color: red">No Screenshots Found</h2>
|
188
180
|
<p>
|
189
|
-
deliver couldn't find any screenshots.
|
190
|
-
</p>
|
181
|
+
deliver couldn't find any screenshots. This will <b>remove</b> existing screenshots, but will also not upload any.
|
191
182
|
<p>
|
192
183
|
Please make sure to store your screenshots in the screenshots folder. If you want to download your existing screenshots, run <i>deliver download_screenshots</i>.
|
193
184
|
</p>
|
194
185
|
</div>
|
195
186
|
<% end %>
|
196
187
|
</div>
|
197
|
-
|
198
|
-
</div>
|
188
|
+
|
199
189
|
<hr />
|
200
190
|
<% end # end data %>
|
201
191
|
</body>
|
202
192
|
</html>
|
203
|
-
|
204
|
-
|
data/lib/deliver.rb
CHANGED
@@ -1,24 +1,26 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'deliver/version'
|
3
|
-
require 'deliver/
|
4
|
-
require 'deliver/
|
5
|
-
require 'deliver/
|
3
|
+
require 'deliver/options'
|
4
|
+
require 'deliver/commands_generator'
|
5
|
+
require 'deliver/detect_values'
|
6
|
+
require 'deliver/runner'
|
7
|
+
require 'deliver/upload_metadata'
|
8
|
+
require 'deliver/upload_screenshots'
|
9
|
+
require 'deliver/upload_price_tier'
|
10
|
+
require 'deliver/upload_assets'
|
11
|
+
require 'deliver/submit_for_review'
|
6
12
|
require 'deliver/app_screenshot'
|
7
|
-
require 'deliver/itunes_connect/itunes_connect'
|
8
|
-
require 'deliver/itunes_transporter'
|
9
|
-
require 'deliver/deliverfile/deliverfile'
|
10
|
-
require 'deliver/deliverfile/deliverfile_creator'
|
11
|
-
require 'deliver/deliverer'
|
12
|
-
require 'deliver/ipa_uploader'
|
13
13
|
require 'deliver/html_generator'
|
14
|
-
require 'deliver/deliver_process'
|
15
|
-
require 'deliver/dependency_checker'
|
16
|
-
require 'deliver/ipa_file_analyser'
|
17
|
-
require 'deliver/testflight'
|
18
|
-
require 'deliver/commands_generator'
|
19
14
|
|
15
|
+
require 'spaceship'
|
20
16
|
require 'fastlane_core'
|
21
17
|
|
18
|
+
# TODO
|
19
|
+
require 'pry'
|
20
|
+
|
22
21
|
module Deliver
|
22
|
+
class << self
|
23
|
+
end
|
24
|
+
|
23
25
|
Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
|
24
26
|
end
|