deliver 0.8.0 → 0.8.1
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 +10 -21
- data/bin/deliver +4 -1
- data/lib/assets/DeliverfileDefault +21 -57
- data/lib/assets/DeliverfileExample +22 -54
- data/lib/deliver/deliver_process.rb +6 -2
- data/lib/deliver/deliverfile/deliverfile_creator.rb +5 -2
- data/lib/deliver/ipa_uploader.rb +0 -1
- data/lib/deliver/itunes_connect/itunes_connect_submission.rb +52 -37
- data/lib/deliver/testflight.rb +1 -1
- data/lib/deliver/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8156d24d9ac47337d5f3d1647c4d79209c4dbd4b
|
4
|
+
data.tar.gz: 6c4aa1ceee21c1c4585ca1cc4f1192d023d1d760
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb21bd1e99341f908f37c8f2380a2d84e86f18f1674348eb731411361446734b22b6acf1962d6636075bc255cc89cb7e103c0f997f65a6009985e25aa6ecbcea
|
7
|
+
data.tar.gz: 0d5fef2525aee2338ac2defad6fa10839f8e079d0f705f08082c626436659b263058dd37545dc58cb3a7d7ffe30e527a37ba759dd418a1c0963e1660c74188e8
|
data/README.md
CHANGED
@@ -168,6 +168,10 @@ 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
|
+
|
171
175
|
#### Upload a new ipa file with a changelog to the App Store
|
172
176
|
This will submit a new update to Apple
|
173
177
|
```ruby
|
@@ -185,6 +189,8 @@ If you wish to skip automated submission to review you can provide `--skip-deplo
|
|
185
189
|
|
186
190
|
The changelog is only used for App Store submission, not for TestFlight builds.
|
187
191
|
|
192
|
+
It is recommended to use `deliver` in combination with [fastlane](https://github.com/KrauseFx/fastlane) to build the app using `xcodebuild`.
|
193
|
+
|
188
194
|
#### Upload a new ipa for TestFlight beta testers
|
189
195
|
|
190
196
|
In order to upload an `.ipa` file for Apple TestFlight you need to specify `beta_ipa` path in your `Deliverfile`
|
@@ -218,24 +224,6 @@ error do |information|
|
|
218
224
|
end
|
219
225
|
```
|
220
226
|
|
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
|
-
|
239
227
|
#### Read content from somewhere external (file, web service, ...)
|
240
228
|
```ruby
|
241
229
|
description({
|
@@ -275,8 +263,9 @@ All available commands with a short description can be found in [Deliverfile.md]
|
|
275
263
|
- Ask the script user for a changelog
|
276
264
|
- Deploy a new version just by starting a Jenkins job
|
277
265
|
- Post the deployment status on Slack
|
278
|
-
- Upload the latest screenshots
|
279
|
-
|
266
|
+
- Upload the latest screenshots to your server
|
267
|
+
|
268
|
+
For further actions, check out [fastlane](https://github.com/KrauseFx/fastlane)
|
280
269
|
|
281
270
|
#### Use the exposed Ruby classes
|
282
271
|
Some examples:
|
@@ -299,7 +288,7 @@ This project is well documented, check it out on [Rubydoc](http://www.rubydoc.in
|
|
299
288
|
|
300
289
|
# Credentials
|
301
290
|
|
302
|
-
A detailed description about your credentials is available on a [
|
291
|
+
A detailed description about your credentials is available on a [separate repo](https://github.com/KrauseFx/CredentialsManager).
|
303
292
|
|
304
293
|
|
305
294
|
# Can I trust `deliver`?
|
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 '--force', 'Runs a deployment without verifying any information (PDF file). This can be used for build servers.'
|
21
|
+
global_option '-f', '--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,9 +46,12 @@ 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'
|
49
50
|
c.description = "Creates a new Deliverfile in the current directory"
|
50
51
|
|
51
52
|
c.action do |args, options|
|
53
|
+
set_username(options.username)
|
54
|
+
|
52
55
|
path = (Deliver::Helper.fastlane_enabled?? './fastlane' : '.')
|
53
56
|
Deliver::DeliverfileCreator.create(path)
|
54
57
|
end
|
@@ -1,66 +1,30 @@
|
|
1
|
-
|
2
|
-
#
|
1
|
+
###################### App Metadata ######################
|
2
|
+
# Update the app description and metadata in the ./metadata folder
|
3
3
|
|
4
|
-
|
4
|
+
###################### Screenshots ######################
|
5
|
+
# Store all screenshots in the ./screenshots folder separated
|
6
|
+
# by language. If you use snapshot, this happens automatically
|
5
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"
|
6
13
|
|
7
|
-
|
8
|
-
#
|
9
|
-
########################################
|
14
|
+
# to provide an ipa file for TestFlight distribution, use beta_ipa
|
15
|
+
# beta_ipa "./app.ipa"
|
10
16
|
|
17
|
+
# The version of your app - remove this if you provide an ipa file
|
18
|
+
version "[[APP_VERSION]]"
|
11
19
|
|
12
|
-
|
13
|
-
#
|
14
|
-
# https://github.com/KrauseFx/deliver
|
15
|
-
screenshots_path "./screenshots/"
|
20
|
+
###################### More Options ######################
|
21
|
+
# If you want to have even more control, check out the documentation
|
22
|
+
# https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
16
23
|
|
17
24
|
|
18
|
-
|
25
|
+
###################### Automatically generated ######################
|
26
|
+
# Feel free to remove the following lines if you use fastlane
|
19
27
|
|
20
|
-
|
21
|
-
app_identifier "[[APP_IDENTIFIER]]"
|
28
|
+
app_identifier "[[APP_IDENTIFIER]]" # The bundle identifier of your app
|
22
29
|
apple_id "[[APPLE_ID]]" # This is NOT your Apple login ID, but the App ID of your app
|
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
|
-
# Dynamic generation of the ipa file
|
34
|
-
# I'm using Shenzhen by Mattt, but you can use any build tool you want
|
35
|
-
# Remove the whole block if you do not want to upload an ipa file
|
36
|
-
ipa do
|
37
|
-
# Add any code you want, like incrementing the build
|
38
|
-
# number or changing the app identifier
|
39
|
-
|
40
|
-
# Attention: When you return a valid ipa file, this file will get uploaded and released
|
41
|
-
# If you only want to upload app metadata, remove the complete ipa block.
|
42
|
-
|
43
|
-
# system("ipa build --verbose") # build your project using Shenzhen
|
44
|
-
|
45
|
-
# ENV["IPA_OUTPUT_PATH"] # if you're using fastlane uncomment this and remove the line below
|
46
|
-
|
47
|
-
"./[[APP_NAME]].ipa" # Tell 'Deliver' where it can find the finished ipa file
|
48
|
-
end
|
49
|
-
|
50
|
-
# ipa "./latest.ipa" # this can be used instead of the `do` block, if you prefer manually building the ipa file
|
51
|
-
|
52
|
-
# beta_ipa do
|
53
|
-
# system("ipa build --verbose") # customize this to build beta version
|
54
|
-
# "./ad_hoc_build.ipa" # upload ipa file using `deliver --beta`
|
55
|
-
# end
|
56
|
-
|
57
|
-
# unit_tests do
|
58
|
-
# If you use fastlane (http://github.com/krausefx/fastlane), run the tests there
|
59
|
-
# system("xctool test")
|
60
|
-
# end
|
61
|
-
|
62
|
-
success do
|
63
|
-
# system("say 'Successfully deployed a new version.'")
|
64
|
-
end
|
65
|
-
|
66
|
-
# More information about all available options: https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
30
|
+
email "[[EMAIL]]" # the login email address
|
@@ -1,26 +1,4 @@
|
|
1
|
-
|
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
|
1
|
+
###################### App Metadata ######################
|
24
2
|
#
|
25
3
|
# title({
|
26
4
|
# "en-US" => "Your App Name"
|
@@ -29,42 +7,32 @@ screenshots_path "./screenshots"
|
|
29
7
|
# changelog({
|
30
8
|
# "en-US" => "iPhone 6 (Plus) Support"
|
31
9
|
# })
|
10
|
+
# More options: https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
32
11
|
|
12
|
+
###################### Screenshots ######################
|
13
|
+
# Store all screenshots in the ./screenshots folder separated
|
14
|
+
# by language. If you use snapshot, this happens automatically
|
33
15
|
|
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"
|
34
21
|
|
35
|
-
|
36
|
-
#
|
37
|
-
########################################
|
38
|
-
|
39
|
-
# Dynamic generation of the ipa file
|
40
|
-
# I'm using Shenzhen by Mattt, but you can use any build tool you want
|
41
|
-
# Remove the whole block if you do not want to upload an ipa file
|
42
|
-
ipa do
|
43
|
-
# Add any code you want, like incrementing the build
|
44
|
-
# number or changing the app identifier
|
45
|
-
|
46
|
-
# Attention: When you return a valid ipa file, this file will get uploaded and released
|
47
|
-
# If you only want to upload app metadata, remove the complete ipa block.
|
48
|
-
|
49
|
-
# system("ipa build --verbose") # build your project using Shenzhen
|
50
|
-
|
51
|
-
# ENV["IPA_OUTPUT_PATH"] # if you're using fastlane uncomment this and remove the line below
|
22
|
+
# to provide an ipa file for TestFlight distribution, use beta_ipa
|
23
|
+
# beta_ipa "./app.ipa"
|
52
24
|
|
53
|
-
|
54
|
-
|
25
|
+
# The version of your app - remove this if you provide an ipa file
|
26
|
+
version "[[APP_VERSION]]"
|
55
27
|
|
56
|
-
|
28
|
+
###################### More Options ######################
|
29
|
+
# If you want to have even more control, check out the documentation
|
30
|
+
# https://github.com/KrauseFx/deliver/blob/master/Deliverfile.md
|
57
31
|
|
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
|
62
32
|
|
63
|
-
|
64
|
-
#
|
65
|
-
# system("xctool test")
|
66
|
-
# end
|
33
|
+
###################### Automatically generated ######################
|
34
|
+
# Feel free to remove the following lines if you use fastlane
|
67
35
|
|
68
|
-
|
69
|
-
|
70
|
-
|
36
|
+
app_identifier "[[APP_IDENTIFIER]]" # The bundle identifier of your app
|
37
|
+
apple_id "[[APPLE_ID]]" # This is NOT your Apple login ID, but the App ID of your app
|
38
|
+
email "[[EMAIL]]" # the login email address
|
@@ -79,10 +79,12 @@ module Deliver
|
|
79
79
|
@app_version = @deploy_information[Deliverer::ValKey::APP_VERSION]
|
80
80
|
@app_identifier = @deploy_information[Deliverer::ValKey::APP_IDENTIFIER]
|
81
81
|
|
82
|
+
used_ipa_file = ENV["IPA_OUTPUT_PATH"]# if (ENV["IPA_OUTPUT_PATH"] and File.exists?(ENV["IPA_OUTPUT_PATH"]))
|
83
|
+
|
82
84
|
if is_release_build?
|
83
|
-
used_ipa_file = @deploy_information[:ipa]
|
85
|
+
used_ipa_file = @deploy_information[:ipa] if @deploy_information[:ipa]
|
84
86
|
elsif is_beta_build?
|
85
|
-
used_ipa_file = @deploy_information[:beta_ipa]
|
87
|
+
used_ipa_file = @deploy_information[:beta_ipa] if @deploy_information[:beta_ipa]
|
86
88
|
end
|
87
89
|
|
88
90
|
if used_ipa_file.kind_of?Proc
|
@@ -217,6 +219,8 @@ module Deliver
|
|
217
219
|
Helper.log.warn "Overwriting screenshots path from config (#{screens_path}) with (#{ENV["DELIVER_SCREENSHOTS_PATH"]})".yellow
|
218
220
|
screens_path = ENV["DELIVER_SCREENSHOTS_PATH"]
|
219
221
|
end
|
222
|
+
|
223
|
+
screens_path ||= "./screenshots/" # default value
|
220
224
|
|
221
225
|
if screens_path
|
222
226
|
# Not using Snapfile. Not a good user.
|
@@ -57,9 +57,11 @@ 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
|
60
62
|
|
61
63
|
file_path = File.join(deliver_path, Deliver::Deliverfile::Deliverfile::FILE_NAME)
|
62
|
-
json = generate_deliver_file(app, deliver_path, project_name)
|
64
|
+
json = generate_deliver_file(app, deliver_path, project_name, version_number)
|
63
65
|
File.write(file_path, json)
|
64
66
|
|
65
67
|
FileUtils.mkdir_p File.join(deliver_path, 'screenshots')
|
@@ -81,7 +83,7 @@ module Deliver
|
|
81
83
|
private
|
82
84
|
# This method takes care of creating a new 'deliver' folder, containg the app metadata
|
83
85
|
# and screenshots folders
|
84
|
-
def self.generate_deliver_file(app, path, project_name)
|
86
|
+
def self.generate_deliver_file(app, path, project_name, version_number)
|
85
87
|
FileUtils.mkdir_p path rescue nil # never mind if it's already there
|
86
88
|
|
87
89
|
json = create_json_based_on_xml(app, path)
|
@@ -107,6 +109,7 @@ module Deliver
|
|
107
109
|
deliver.gsub!("[[APP_NAME]]", project_name)
|
108
110
|
deliver.gsub!("[[APPLE_ID]]", app.apple_id.to_s)
|
109
111
|
deliver.gsub!("[[EMAIL]]", CredentialsManager::PasswordManager.shared_manager.username)
|
112
|
+
deliver.gsub!("[[APP_VERSION]]", version_number)
|
110
113
|
|
111
114
|
return deliver
|
112
115
|
end
|
data/lib/deliver/ipa_uploader.rb
CHANGED
@@ -99,7 +99,6 @@ module Deliver
|
|
99
99
|
# Distribute to beta testers
|
100
100
|
Helper.log.info "Distributing the latest build to Beta Testers."
|
101
101
|
if self.app.itc.put_build_into_beta_testing!(self.app, self.fetch_app_version)
|
102
|
-
Helper.log.info "Successfully distributed a new beta build of your app.".green
|
103
102
|
return true
|
104
103
|
end
|
105
104
|
return false
|
@@ -11,53 +11,68 @@ module Deliver
|
|
11
11
|
|
12
12
|
Helper.log.info("Choosing the latest build on iTunesConnect for beta distribution")
|
13
13
|
|
14
|
-
|
15
|
-
click_on "Prerelease"
|
16
|
-
sleep 3
|
14
|
+
require 'excon'
|
17
15
|
|
18
|
-
|
16
|
+
# Migrate session
|
17
|
+
cookie_string = page.driver.cookies.collect { |key, cookie| "#{cookie.name}=#{cookie.value}" }.join(";")
|
19
18
|
|
19
|
+
trains_url = "https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/apps/#{app.apple_id}/trains/"
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
if all(".bt-version > a").count == 0
|
27
|
-
raise "Couldn't find any builds. Please check the iTunes Conncet page: '#{current_url}'".red
|
28
|
-
end
|
21
|
+
current_build = nil
|
22
|
+
current_train = nil
|
23
|
+
started = Time.now
|
29
24
|
|
30
|
-
# We might have to wait until the second part of "Processing" is finished
|
31
|
-
while first("tr > td.bt-internal").text == "Processing"
|
32
|
-
Helper.log.debug "iTC needs some more processing... Waiting even longer..."
|
33
|
-
sleep 10
|
34
|
-
visit current_url
|
35
|
-
sleep 10
|
36
|
-
end
|
37
25
|
|
38
|
-
|
26
|
+
loop do
|
27
|
+
trains = JSON.parse(Excon.get(trains_url, headers: { "Cookie" => cookie_string } ).body)
|
28
|
+
if trains['data']['processingBuilds'].count == 0
|
29
|
+
# Make sure the build was successfully processed
|
30
|
+
latest_build_time = 0
|
39
31
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
32
|
+
trains['data']['trains'].each do |train|
|
33
|
+
train['builds'].each do |build|
|
34
|
+
if build['uploadDate'] > latest_build_time
|
35
|
+
current_build = build
|
36
|
+
current_train = train
|
37
|
+
latest_build_time = build['uploadDate']
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# We got the most recent build, let's see if it's ready
|
43
|
+
if current_build['internalState'] == 'inactive' and current_build['readyToInstall'] == true
|
44
|
+
Helper.log.info "Build is ready 3.2.1...".green
|
45
|
+
break # Success!
|
46
|
+
end
|
53
47
|
end
|
54
48
|
|
55
|
-
|
56
|
-
|
57
|
-
|
49
|
+
Helper.log.info("Sorry, we have to wait for iTunesConnect, since it's still processing the uploaded ipa file\n" +
|
50
|
+
"If this takes longer than 45 minutes, you have to re-upload the ipa file again.\n" +
|
51
|
+
"You can always open the browser page yourself: '#{current_url}'\n" +
|
52
|
+
"Passed time: ~#{((Time.now - started) / 60.0).to_i} minute(s)")
|
53
|
+
sleep 60
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
if not current_train['testing']['value']
|
58
|
+
# Beta testing for latest build is not yet enabled
|
59
|
+
current_train['testing']['value'] = true
|
60
|
+
|
61
|
+
Helper.log.info "Beta Testing is disabled for version #{current_train['versionString']}... enabling it now!".green
|
62
|
+
|
63
|
+
# Update the only train we modify
|
64
|
+
Excon.post(trains_url, body: {trains: [current_train]}.to_json, headers: { "Cookie" => cookie_string } )
|
58
65
|
end
|
59
66
|
|
60
|
-
|
67
|
+
build_url = "https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/apps/#{app.apple_id}/trains/#{current_build['trainVersion']}/builds/#{current_build['buildVersion']}/testInformation"
|
68
|
+
build_info = JSON.parse(Excon.get(build_url, headers: { "Cookie" => cookie_string } ).body)['data']
|
69
|
+
|
70
|
+
build_info['details'][0]['whatsNew']['value'] = ENV["DELIVER_WHAT_TO_TEST"]
|
71
|
+
build_info['details'][0]['description']['value'] = ENV["DELIVER_BETA_DESCRIPTION"]
|
72
|
+
build_info['details'][0]['feedbackEmail']['value'] = ENV["DELIVER_BETA_FEEDBACK_EMAIL"]
|
73
|
+
Excon.post(build_url, body: build_info.to_json, headers: { "Cookie" => cookie_string } )
|
74
|
+
|
75
|
+
Helper.log.info "Successfully distributed latest beta build 🚀".green
|
61
76
|
|
62
77
|
return true
|
63
78
|
rescue => ex
|
data/lib/deliver/testflight.rb
CHANGED
@@ -10,7 +10,7 @@ module Deliver
|
|
10
10
|
|
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
|
-
app_id ||= (
|
13
|
+
app_id ||= (FastlaneCore::ItunesSearchApi.fetch_by_identifier(app_identifier)['trackId'] rescue nil)
|
14
14
|
app_id ||= ENV["TESTFLIGHT_APPLE_ID"] || ask("Could not automatically find the app ID, please enter it here (e.g. 956814360): ")
|
15
15
|
strategy = (skip_deploy ? Deliver::IPA_UPLOAD_STRATEGY_JUST_UPLOAD : Deliver::IPA_UPLOAD_STRATEGY_BETA_BUILD)
|
16
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.8.
|
4
|
+
version: 0.8.1
|
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-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastlane_core
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: excon
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|