deliver 0.8.3 → 0.9.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +20 -9
- data/bin/deliver +1 -4
- data/lib/assets/DeliverfileDefault +56 -21
- data/lib/assets/DeliverfileExample +54 -22
- data/lib/deliver/app.rb +1 -8
- data/lib/deliver/deliver_process.rb +0 -2
- data/lib/deliver/deliverfile/deliverfile_creator.rb +2 -5
- data/lib/deliver/itunes_transporter.rb +2 -2
- data/lib/deliver/testflight.rb +0 -1
- data/lib/deliver/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6e5f3897f71270754b2dd165acad1d32d5f5788
|
4
|
+
data.tar.gz: 1411d0ca22a4f1b27670ae4e8483306b8b6e0a3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2f787905aeb6501555f8bf4a8e3b8f54cc48bb2c0e5e09b08090b36ce070e4ba33faa5136d42dd510b54a172d80d81a2428292194bc2e35897b9f1e9208d767
|
7
|
+
data.tar.gz: 4488184db0658cf289a600cb8eb578caba39803041f5f90ba984f81d1bfea0c5820294fb3576f7d839109e251ec026715256432ffb11a914b6505f5d15d944ba
|
data/README.md
CHANGED
@@ -168,10 +168,6 @@ To let the computer create the screenshots for you, checkout [this section of th
|
|
168
168
|
|
169
169
|
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/).
|
170
170
|
|
171
|
-
#### Update App description, keywords and more
|
172
|
-
|
173
|
-
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`.
|
174
|
-
|
175
171
|
#### Upload a new ipa file with a changelog to the App Store
|
176
172
|
This will submit a new update to Apple
|
177
173
|
```ruby
|
@@ -189,8 +185,6 @@ If you wish to skip automated submission to review you can provide `--skip-deplo
|
|
189
185
|
|
190
186
|
The changelog is only used for App Store submission, not for TestFlight builds.
|
191
187
|
|
192
|
-
It is recommended to use `deliver` in combination with [fastlane](https://github.com/KrauseFx/fastlane) to build the app using `xcodebuild`.
|
193
|
-
|
194
188
|
#### Upload a new ipa for TestFlight beta testers
|
195
189
|
|
196
190
|
In order to upload an `.ipa` file for Apple TestFlight you need to specify `beta_ipa` path in your `Deliverfile`
|
@@ -224,6 +218,24 @@ error do |information|
|
|
224
218
|
end
|
225
219
|
```
|
226
220
|
|
221
|
+
|
222
|
+
#### Set a default language if you only maintain one language
|
223
|
+
```ruby
|
224
|
+
default_language "en-US"
|
225
|
+
version "1.2"
|
226
|
+
|
227
|
+
title "Only English Title"
|
228
|
+
```
|
229
|
+
If you do not pass an ipa file, you have to specify the app version you want to edit.
|
230
|
+
|
231
|
+
#### Update the app's keywords
|
232
|
+
```ruby
|
233
|
+
default_language "de-DE"
|
234
|
+
version "1.2"
|
235
|
+
|
236
|
+
keywords ["keyword1", "something", "else"]
|
237
|
+
```
|
238
|
+
|
227
239
|
#### Read content from somewhere external (file, web service, ...)
|
228
240
|
```ruby
|
229
241
|
description({
|
@@ -263,9 +275,8 @@ All available commands with a short description can be found in [Deliverfile.md]
|
|
263
275
|
- Ask the script user for a changelog
|
264
276
|
- Deploy a new version just by starting a Jenkins job
|
265
277
|
- Post the deployment status on Slack
|
266
|
-
- Upload the latest screenshots
|
267
|
-
|
268
|
-
For further actions, check out [fastlane](https://github.com/KrauseFx/fastlane)
|
278
|
+
- Upload the latest screenshots on your server
|
279
|
+
- Many more things, be creative and let me know :)
|
269
280
|
|
270
281
|
#### Use the exposed Ruby classes
|
271
282
|
Some examples:
|
data/bin/deliver
CHANGED
@@ -18,7 +18,7 @@ class FastlaneApplication
|
|
18
18
|
program :help, 'GitHub', 'https://github.com/krausefx/deliver'
|
19
19
|
program :help_formatter, :compact
|
20
20
|
|
21
|
-
global_option '
|
21
|
+
global_option '--force', 'Runs a deployment without verifying any information (PDF file). This can be used for build servers.'
|
22
22
|
global_option '--beta', 'Upload a beta build to iTunes Connect. This uses the `beta_ipa` block.'
|
23
23
|
global_option '--skip-deploy', 'Skips submission of the build on iTunes Connect. This will only upload the ipa and/or metadata.'
|
24
24
|
|
@@ -46,12 +46,9 @@ class FastlaneApplication
|
|
46
46
|
|
47
47
|
command :init do |c|
|
48
48
|
c.syntax = 'deliver init'
|
49
|
-
c.option '-u', '--username String', String, 'Your Apple ID'
|
50
49
|
c.description = "Creates a new Deliverfile in the current directory"
|
51
50
|
|
52
51
|
c.action do |args, options|
|
53
|
-
set_username(options.username)
|
54
|
-
|
55
52
|
path = (Deliver::Helper.fastlane_enabled?? './fastlane' : '.')
|
56
53
|
Deliver::DeliverfileCreator.create(path)
|
57
54
|
end
|
@@ -1,30 +1,65 @@
|
|
1
|
-
|
2
|
-
#
|
1
|
+
# For more information visit the GitHub documentation: https://github.com/krausefx/deliver
|
2
|
+
# Everything next to a # is a comment and will be ignored
|
3
3
|
|
4
|
-
|
5
|
-
# Store all screenshots in the ./screenshots folder separated
|
6
|
-
# by language. If you use snapshot, this happens automatically
|
4
|
+
# hide_transporter_output # remove the '#' in the beginning of the line, to hide the output while uploading
|
7
5
|
|
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
6
|
|
14
|
-
|
15
|
-
#
|
7
|
+
########################################
|
8
|
+
# App Metadata
|
9
|
+
########################################
|
16
10
|
|
17
|
-
# The version of your app - remove this if you provide an ipa file
|
18
|
-
version "[[APP_VERSION]]"
|
19
11
|
|
20
|
-
|
21
|
-
#
|
22
|
-
# https://github.com/KrauseFx/deliver
|
12
|
+
# This folder has to include one folder for each language
|
13
|
+
# More information about automatic screenshot upload:
|
14
|
+
# https://github.com/KrauseFx/deliver#upload-screenshots-to-itunes-connect
|
15
|
+
screenshots_path "./screenshots/"
|
23
16
|
|
24
17
|
|
25
|
-
|
26
|
-
# Feel free to remove the following lines if you use fastlane
|
18
|
+
# More information about all available options: https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
27
19
|
|
28
|
-
|
20
|
+
# Both lines are optional if you want to remove them:
|
21
|
+
app_identifier "[[APP_IDENTIFIER]]"
|
29
22
|
apple_id "[[APPLE_ID]]" # This is NOT your Apple login ID, but the App ID of your app
|
30
|
-
email "[[EMAIL]]" # the login email address
|
23
|
+
email "[[EMAIL]]" # the login email address
|
24
|
+
|
25
|
+
# version "1.2" # you can pass this if you want to verify the version number with the ipa file
|
26
|
+
|
27
|
+
# To update the app's description, changelog, etc. or to avoid updating it using deliver, edit the files in ./metadata/[language]
|
28
|
+
|
29
|
+
########################################
|
30
|
+
# Building and Testing
|
31
|
+
########################################
|
32
|
+
|
33
|
+
# For fastlane users:
|
34
|
+
# you can remove all code below if you're using fastlane!
|
35
|
+
|
36
|
+
# Remove the whole block if you do not want to upload an ipa file
|
37
|
+
ipa do
|
38
|
+
# Add any code you want, like incrementing the build
|
39
|
+
# number or changing the app identifier
|
40
|
+
|
41
|
+
# Attention: When you return a valid ipa file, this file will get uploaded and released
|
42
|
+
# If you only want to upload app metadata, remove the complete ipa block.
|
43
|
+
|
44
|
+
# system("ipa build --verbose") # build your project using Shenzhen
|
45
|
+
|
46
|
+
"./[[APP_NAME]].ipa" # Tell 'Deliver' where it can find the finished ipa file
|
47
|
+
end
|
48
|
+
|
49
|
+
# ipa "./latest.ipa" # this can be used instead of the `do` block, if you prefer manually building the ipa file
|
50
|
+
|
51
|
+
# beta_ipa do
|
52
|
+
# system("ipa build --verbose") # customize this to build beta version
|
53
|
+
# "./ad_hoc_build.ipa" # upload ipa file using `deliver --beta`
|
54
|
+
# end
|
55
|
+
|
56
|
+
# unit_tests do
|
57
|
+
# If you use fastlane (http://github.com/krausefx/fastlane), run the tests there
|
58
|
+
# system("xctool test")
|
59
|
+
# end
|
60
|
+
|
61
|
+
success do
|
62
|
+
# system("say 'Successfully deployed a new version.'")
|
63
|
+
end
|
64
|
+
|
65
|
+
# More information about all available options: https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
@@ -1,4 +1,26 @@
|
|
1
|
-
|
1
|
+
# This is the example Deliverfile
|
2
|
+
# For more information about each property, visit the GitHub documentation: https://github.com/krausefx/deliver
|
3
|
+
#
|
4
|
+
# You can remove those parts you don't need
|
5
|
+
#
|
6
|
+
# A list of available language codes can be found here: https://github.com/krausefx/deliver#available-language-codes
|
7
|
+
#
|
8
|
+
# Everything next to a # is a comment and will be ignored
|
9
|
+
|
10
|
+
# hide_transporter_output # remove the '#' in the beginning of the line, to hide the output while uploading
|
11
|
+
|
12
|
+
########################################
|
13
|
+
# App Metadata
|
14
|
+
########################################
|
15
|
+
|
16
|
+
|
17
|
+
# This folder has to include one folder for each language
|
18
|
+
# More information about automatic screenshot upload:
|
19
|
+
# https://github.com/KrauseFx/deliver#upload-screenshots-to-itunes-connect
|
20
|
+
screenshots_path "./screenshots"
|
21
|
+
|
22
|
+
|
23
|
+
# version "1.2" # you can pass this if you want to verify the version number with the ipa file
|
2
24
|
#
|
3
25
|
# title({
|
4
26
|
# "en-US" => "Your App Name"
|
@@ -7,32 +29,42 @@
|
|
7
29
|
# changelog({
|
8
30
|
# "en-US" => "iPhone 6 (Plus) Support"
|
9
31
|
# })
|
10
|
-
# More options: https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
11
32
|
|
12
|
-
###################### Screenshots ######################
|
13
|
-
# Store all screenshots in the ./screenshots folder separated
|
14
|
-
# by language. If you use snapshot, this happens automatically
|
15
33
|
|
16
|
-
###################### IPA File ######################
|
17
|
-
# This part is only relevant, if you want to submit a new binary
|
18
|
-
# If you don't use fastlane (https://github.com/KrauseFx/fastlane)
|
19
|
-
# you can set the path to your ipa file using:
|
20
|
-
# ipa "./app.ipa"
|
21
34
|
|
22
|
-
|
23
|
-
#
|
35
|
+
########################################
|
36
|
+
# Building and Testing
|
37
|
+
########################################
|
38
|
+
|
39
|
+
# For fastlane users:
|
40
|
+
# you can remove all code below if you're using fastlane!
|
41
|
+
|
42
|
+
|
43
|
+
# Remove the whole block if you do not want to upload an ipa file
|
44
|
+
ipa do
|
45
|
+
# Add any code you want, like incrementing the build
|
46
|
+
# number or changing the app identifier
|
47
|
+
|
48
|
+
# Attention: When you return a valid ipa file, this file will get uploaded and released
|
49
|
+
# If you only want to upload app metadata, remove the complete ipa block.
|
50
|
+
|
51
|
+
# system("ipa build --verbose") # build your project using Shenzhen
|
24
52
|
|
25
|
-
#
|
26
|
-
|
53
|
+
"./[[APP_NAME]].ipa" # Tell 'Deliver' where it can find the finished ipa file
|
54
|
+
end
|
27
55
|
|
28
|
-
|
29
|
-
# If you want to have even more control, check out the documentation
|
30
|
-
# https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
56
|
+
# ipa "./latest.ipa" # this can be used instead of the `do` block, if you prefer manually building the ipa file
|
31
57
|
|
58
|
+
# beta_ipa do
|
59
|
+
# system("ipa build --verbose") # customize this to build beta version
|
60
|
+
# "./ad_hoc_build.ipa" # upload ipa file using `deliver --beta`
|
61
|
+
# end
|
32
62
|
|
33
|
-
|
34
|
-
#
|
63
|
+
# unit_tests do
|
64
|
+
# If you use fastlane (http://github.com/krausefx/fastlane), run the tests there
|
65
|
+
# system("xctool test")
|
66
|
+
# end
|
35
67
|
|
36
|
-
|
37
|
-
|
38
|
-
|
68
|
+
success do
|
69
|
+
# system("say 'Successfully deployed a new version.'")
|
70
|
+
end
|
data/lib/deliver/app.rb
CHANGED
@@ -41,14 +41,7 @@ module Deliver
|
|
41
41
|
elsif app_identifier and not apple_id
|
42
42
|
# Fetch the Apple ID based on the given app identifier
|
43
43
|
begin
|
44
|
-
|
45
|
-
self.apple_id = FastlaneCore::ItunesSearchApi.fetch_by_identifier(app_identifier)['trackId']
|
46
|
-
rescue
|
47
|
-
Helper.log.warn "App doesn't seem to be in the App Store yet or is not available in the US App Store. Using the iTC API instead."
|
48
|
-
# Use the iTunes Connect API instead: make that default in the future
|
49
|
-
self.apple_id = FastlaneCore::ItunesConnect.new.find_apple_id(app_identifier)
|
50
|
-
raise "Couldn't find Apple ID" unless self.apple_id
|
51
|
-
end
|
44
|
+
self.apple_id = FastlaneCore::ItunesSearchApi.fetch_by_identifier(app_identifier)['trackId']
|
52
45
|
rescue
|
53
46
|
unless Helper.is_test?
|
54
47
|
Helper.log.info "Could not find Apple ID based on the app identifier in the US App Store. Maybe the app is not yet in the store?".yellow
|
@@ -219,8 +219,6 @@ module Deliver
|
|
219
219
|
Helper.log.warn "Overwriting screenshots path from config (#{screens_path}) with (#{ENV["DELIVER_SCREENSHOTS_PATH"]})".yellow
|
220
220
|
screens_path = ENV["DELIVER_SCREENSHOTS_PATH"]
|
221
221
|
end
|
222
|
-
|
223
|
-
screens_path ||= "./screenshots/" # default value
|
224
222
|
|
225
223
|
if screens_path
|
226
224
|
# Not using Snapfile. Not a good user.
|
@@ -57,11 +57,9 @@ module Deliver
|
|
57
57
|
app = Deliver::App.new(app_identifier: identifier)
|
58
58
|
app.set_metadata_directory("/tmp") # we don't want to pollute the current folder
|
59
59
|
app.metadata # this will download the latest app metadata
|
60
|
-
|
61
|
-
version_number = app.metadata.fetch_value("//x:version").first["string"] # fetch the latest app version
|
62
60
|
|
63
61
|
file_path = File.join(deliver_path, Deliver::Deliverfile::Deliverfile::FILE_NAME)
|
64
|
-
json = generate_deliver_file(app, deliver_path, project_name
|
62
|
+
json = generate_deliver_file(app, deliver_path, project_name)
|
65
63
|
File.write(file_path, json)
|
66
64
|
|
67
65
|
FileUtils.mkdir_p File.join(deliver_path, 'screenshots')
|
@@ -83,7 +81,7 @@ module Deliver
|
|
83
81
|
private
|
84
82
|
# This method takes care of creating a new 'deliver' folder, containg the app metadata
|
85
83
|
# and screenshots folders
|
86
|
-
def self.generate_deliver_file(app, path, project_name
|
84
|
+
def self.generate_deliver_file(app, path, project_name)
|
87
85
|
FileUtils.mkdir_p path rescue nil # never mind if it's already there
|
88
86
|
|
89
87
|
json = create_json_based_on_xml(app, path)
|
@@ -109,7 +107,6 @@ module Deliver
|
|
109
107
|
deliver.gsub!("[[APP_NAME]]", project_name)
|
110
108
|
deliver.gsub!("[[APPLE_ID]]", app.apple_id.to_s)
|
111
109
|
deliver.gsub!("[[EMAIL]]", CredentialsManager::PasswordManager.shared_manager.username)
|
112
|
-
deliver.gsub!("[[APP_VERSION]]", version_number)
|
113
110
|
|
114
111
|
return deliver
|
115
112
|
end
|
@@ -180,7 +180,7 @@ module Deliver
|
|
180
180
|
|
181
181
|
def build_download_command(username, password, apple_id, destination = "/tmp")
|
182
182
|
[
|
183
|
-
|
183
|
+
Helper.transporter_path,
|
184
184
|
"-m lookupMetadata",
|
185
185
|
"-u \"#{username}\"",
|
186
186
|
"-p '#{escaped_password(password)}'",
|
@@ -191,7 +191,7 @@ module Deliver
|
|
191
191
|
|
192
192
|
def build_upload_command(username, password, source = "/tmp")
|
193
193
|
[
|
194
|
-
|
194
|
+
Helper.transporter_path,
|
195
195
|
"-m upload",
|
196
196
|
"-u \"#{username}\"",
|
197
197
|
"-p '#{escaped_password(password)}'",
|
data/lib/deliver/testflight.rb
CHANGED
@@ -11,7 +11,6 @@ module Deliver
|
|
11
11
|
app_identifier = IpaFileAnalyser.fetch_app_identifier(ipa_path)
|
12
12
|
app_identifier ||= ENV["TESTFLIGHT_APP_IDENTITIFER"] || ask("Could not automatically find the app identifier, please enter the app's bundle identifier: ")
|
13
13
|
app_id ||= (FastlaneCore::ItunesSearchApi.fetch_by_identifier(app_identifier)['trackId'] rescue nil)
|
14
|
-
app_id ||= (FastlaneCore::ItunesConnect.new.find_apple_id(app_identifier) rescue nil)
|
15
14
|
app_id ||= ENV["TESTFLIGHT_APPLE_ID"] || ask("Could not automatically find the app ID, please enter it here (e.g. 956814360): ")
|
16
15
|
strategy = (skip_deploy ? Deliver::IPA_UPLOAD_STRATEGY_JUST_UPLOAD : Deliver::IPA_UPLOAD_STRATEGY_BETA_BUILD)
|
17
16
|
|
data/lib/deliver/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deliver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastlane_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -265,9 +265,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
265
265
|
version: 2.0.0
|
266
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
267
267
|
requirements:
|
268
|
-
- - '
|
268
|
+
- - '>'
|
269
269
|
- !ruby/object:Gem::Version
|
270
|
-
version:
|
270
|
+
version: 1.3.1
|
271
271
|
requirements: []
|
272
272
|
rubyforge_project:
|
273
273
|
rubygems_version: 2.2.2
|