deliver 0.8.3 → 0.9.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- 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
|