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 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