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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a84edb0e173ce3b5edf851f9aa6c67997c9166a
4
- data.tar.gz: 9635afd41e942fccd6ccd859615689b842e6d480
3
+ metadata.gz: d6e5f3897f71270754b2dd165acad1d32d5f5788
4
+ data.tar.gz: 1411d0ca22a4f1b27670ae4e8483306b8b6e0a3b
5
5
  SHA512:
6
- metadata.gz: f98eb7bad0ccd75fc2477018596c8c1fa98bb11a4d9ad6967edce816b45b3eb46800219e40e77e578943a38ef43306f02f03467ff803d701a17058466928bf0a
7
- data.tar.gz: e5a55e9bfe63a6eca1d799d1ee910a2dfb6ec5d8d5cfaabc4c1da79653a7b5718f6bfd0141ca24fba5269917332e13ecfffa31925746967151544cd3d77bbe1c
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 to your server
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 '-f', '--force', 'Runs a deployment without verifying any information (PDF file). This can be used for build servers.'
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
- ###################### App Metadata ######################
2
- # Update the app description and metadata in the ./metadata folder
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
- ###################### Screenshots ######################
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
- # to provide an ipa file for TestFlight distribution, use beta_ipa
15
- # beta_ipa "./app.ipa"
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
- ###################### 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
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
- ###################### Automatically generated ######################
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
- app_identifier "[[APP_IDENTIFIER]]" # The bundle identifier of your app
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
- ###################### App Metadata ######################
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
- # to provide an ipa file for TestFlight distribution, use beta_ipa
23
- # beta_ipa "./app.ipa"
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
- # The version of your app - remove this if you provide an ipa file
26
- version "[[APP_VERSION]]"
53
+ "./[[APP_NAME]].ipa" # Tell 'Deliver' where it can find the finished ipa file
54
+ end
27
55
 
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
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
- ###################### Automatically generated ######################
34
- # Feel free to remove the following lines if you use fastlane
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
- 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
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
- begin
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, version_number)
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, version_number)
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
- '"' + Helper.transporter_path + '"',
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
- '"' + Helper.transporter_path + '"',
194
+ Helper.transporter_path,
195
195
  "-m upload",
196
196
  "-u \"#{username}\"",
197
197
  "-p '#{escaped_password(password)}'",
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module Deliver
2
- VERSION = "0.8.3"
2
+ VERSION = "0.9.0.pre"
3
3
  end
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.3
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-04-06 00:00:00.000000000 Z
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.4.3
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.4.3
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: '0'
270
+ version: 1.3.1
271
271
  requirements: []
272
272
  rubyforge_project:
273
273
  rubygems_version: 2.2.2