shenzhen 0.11.2 → 0.12.0

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: 367224d03a3ba0c40a2ad61ddb382739d3f0787b
4
- data.tar.gz: 208cef76143e424dd568be78a51c1c69e1adebd7
3
+ metadata.gz: a25e6cf547a77b7148e488d19c7007fadc90c3ef
4
+ data.tar.gz: 6e8c8fb827938d44a1b189be57b74d8693d15a0e
5
5
  SHA512:
6
- metadata.gz: 79771d566612731c74ed3bb9e14a938f24d410956364f439e66489bb83b097054a83055cbf25a4c478ad24c360416f03f4669ddfaaede3e00bd2ab99e8295a46
7
- data.tar.gz: 01c2f5a0cf4be880ccad6374d299d137fec355e021a9380f9d005f95cb1a71cbea19326d4dc9f9f5610a835d14e8a88a389104019eb9e92664a33aca5601c8ae
6
+ metadata.gz: 568b6bbf5e2dc785f2a8e843d5be2aa8e70ff77775055f868d43e4eaecea504dd180db064b6f398ba04c0e68cb8e9cc629b1e54ffc178817424f15249087c889
7
+ data.tar.gz: b48f32a2415431156ebd7920a4cbb8d224d96aa86787541f11294b2ef6a1ac884aa6b46b07de5fe37ac299901036178f321923d1cb63f8523c81d230e9d17e8c
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shenzhen (0.11.2)
4
+ shenzhen (0.12.0)
5
5
  aws-sdk (~> 1.0)
6
- commander (~> 4.1)
6
+ commander (~> 4.3)
7
7
  dotenv (~> 0.7)
8
8
  faraday (~> 0.8.9)
9
9
  faraday_middleware (~> 0.9)
@@ -17,10 +17,12 @@ PATH
17
17
  GEM
18
18
  remote: https://rubygems.org/
19
19
  specs:
20
- aws-sdk (1.50.0)
20
+ aws-sdk (1.63.0)
21
+ aws-sdk-v1 (= 1.63.0)
22
+ aws-sdk-v1 (1.63.0)
21
23
  json (~> 1.4)
22
24
  nokogiri (>= 1.4.4)
23
- commander (4.2.0)
25
+ commander (4.3.0)
24
26
  highline (~> 1.6.11)
25
27
  diff-lcs (1.2.5)
26
28
  dotenv (0.11.1)
@@ -31,14 +33,14 @@ GEM
31
33
  faraday_middleware (0.9.1)
32
34
  faraday (>= 0.7.4, < 0.10)
33
35
  highline (1.6.21)
34
- json (1.8.1)
35
- mini_portile (0.6.0)
36
+ json (1.8.2)
37
+ mini_portile (0.6.2)
36
38
  multipart-post (1.2.0)
37
39
  net-sftp (2.1.2)
38
40
  net-ssh (>= 2.6.5)
39
- net-ssh (2.9.1)
40
- nokogiri (1.6.3.1)
41
- mini_portile (= 0.6.0)
41
+ net-ssh (2.9.2)
42
+ nokogiri (1.6.6.2)
43
+ mini_portile (~> 0.6.0)
42
44
  plist (3.1.0)
43
45
  rake (10.3.1)
44
46
  rspec (2.14.1)
@@ -49,7 +51,7 @@ GEM
49
51
  rspec-expectations (2.14.5)
50
52
  diff-lcs (>= 1.1.3, < 2.0)
51
53
  rspec-mocks (2.14.6)
52
- rubyzip (1.1.6)
54
+ rubyzip (1.1.7)
53
55
  security (0.1.3)
54
56
  terminal-table (1.4.5)
55
57
 
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  Create `.ipa` files and distribute them from the command line, using any of the following methods:
4
4
 
5
5
  - [iTunes Connect](https://itunesconnect.apple.com)
6
- - [TestFlight](https://testflightapp.com/)
7
6
  - [HockeyApp](http://www.hockeyapp.net)
8
7
  - [Crashlytics Beta](http://try.crashlytics.com/beta/)
9
8
  - [DeployGate](https://deploygate.com)
@@ -48,7 +47,6 @@ Build and distribute iOS apps (.ipa files)
48
47
 
49
48
  Commands:
50
49
  build Create a new .ipa file for your app
51
- distribute:testflight Distribute an .ipa file over TestFlight
52
50
  distribute:hockeyapp Distribute an .ipa file over HockeyApp
53
51
  distribute:crashlytics Distribute an .ipa file over Crashlytics
54
52
  distribute:deploygate Distribute an .ipa file over deploygate
@@ -60,9 +58,6 @@ Build and distribute iOS apps (.ipa files)
60
58
  info Show mobile provisioning information about an .ipa file
61
59
  help Display global or [command] help documentation.
62
60
 
63
- Aliases:
64
- distribute distribute:testflight
65
-
66
61
  Global Options:
67
62
  -h, --help Display help documentation
68
63
  -v, --version Display version information
@@ -77,14 +72,6 @@ $ ipa build
77
72
  $ ipa distribute
78
73
  ```
79
74
 
80
- #### TestFlight Distribution
81
-
82
- ```
83
- $ ipa distribute:testflight -a API_TOKEN -T TEAM_TOKEN
84
- ```
85
-
86
- > Shenzhen will load credentials from the environment variables `TESTFLIGHT_API_TOKEN` and `TESTFLIGHT_TEAM_TOKEN` unless otherwise specified.
87
-
88
75
  #### HockeyApp Distribution
89
76
 
90
77
  ```
@@ -1,6 +1,5 @@
1
1
  $:.push File.expand_path('../', __FILE__)
2
2
 
3
- require 'plugins/testflight'
4
3
  require 'plugins/hockeyapp'
5
4
  require 'plugins/deploygate'
6
5
  require 'plugins/itunesconnect'
@@ -75,7 +75,9 @@ command :build do |c|
75
75
  actions << :archive unless options.archive == false
76
76
 
77
77
  ENV['CC'] = nil # Fix for RVM
78
- abort unless system %{xcodebuild #{flags.join(' ')} #{actions.join(' ')} #{'1> /dev/null' unless $verbose}}
78
+ cmd = %{xcodebuild #{flags.join(' ')} #{actions.join(' ')} #{'1> /dev/null' unless $verbose}}
79
+ say_warning cmd
80
+ abort unless system cmd
79
81
 
80
82
  @target, @xcodebuild_settings = Shenzhen::XcodeBuild.settings(*flags).detect{|target, settings| settings['WRAPPER_EXTENSION'] == "app"}
81
83
  say_error "App settings could not be found." and abort unless @xcodebuild_settings
@@ -1,5 +1,3 @@
1
- alias_command :distribute, :'distribute:testflight'
2
-
3
1
  private
4
2
 
5
3
  def determine_file!
@@ -18,7 +16,7 @@ def determine_dsym!
18
16
  when 0 then nil
19
17
  when 1 then dsym_files.first
20
18
  else
21
- dsym_files.detect do |dsym|
19
+ dsym_files.detect do |dsym|
22
20
  File.basename(dsym, ".app.dSYM.zip") == File.basename(@file, ".ipa")
23
21
  end or choose "Select a .dSYM.zip file:", *dsym_files
24
22
  end
@@ -26,7 +24,7 @@ end
26
24
 
27
25
  def determine_notes!
28
26
  placeholder = %{What's new in this release: }
29
-
27
+
30
28
  @notes = ask_editor placeholder
31
29
  @notes = nil if @notes == placeholder
32
30
  end
@@ -75,10 +75,10 @@ command :'distribute:pgyer' do |c|
75
75
  determine_file! unless @file = options.file
76
76
  say_error "Missing or unspecified .ipa file" and abort unless @file and File.exist?(@file)
77
77
 
78
- determine_testflight_user_key! unless @user_key = options.user_key || ENV['PGYER_USER_KEY']
78
+ determine_pgyer_user_key! unless @user_key = options.user_key || ENV['PGYER_USER_KEY']
79
79
  say_error "Missing User Key" and abort unless @user_key
80
80
 
81
- determine_testflight_api_key! unless @api_key = options.api_key || ENV['PGYER_API_KEY']
81
+ determine_pgyer_api_key! unless @api_key = options.api_key || ENV['PGYER_API_KEY']
82
82
  say_error "Missing API Key" and abort unless @api_key
83
83
 
84
84
  determine_publish_range! unless @publish_range = options.range
@@ -1,3 +1,3 @@
1
1
  module Shenzhen
2
- VERSION = '0.11.2'
2
+ VERSION = '0.12.0'
3
3
  end
Binary file
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.summary = "Shenzhen"
15
15
  s.description = "CLI for Building & Distributing iOS Apps (.ipa Files)"
16
16
 
17
- s.add_dependency "commander", "~> 4.1"
17
+ s.add_dependency "commander", "~> 4.3"
18
18
  s.add_dependency "terminal-table", "~> 1.4.5"
19
19
  s.add_dependency "json", "~> 1.8"
20
20
  s.add_dependency "faraday", "~> 0.8.9"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shenzhen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattt Thompson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-09 00:00:00.000000000 Z
11
+ date: 2015-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: '4.3'
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: '4.1'
26
+ version: '4.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: terminal-table
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -215,7 +215,6 @@ files:
215
215
  - ./lib/shenzhen/plugins/itunesconnect.rb
216
216
  - ./lib/shenzhen/plugins/pgyer.rb
217
217
  - ./lib/shenzhen/plugins/s3.rb
218
- - ./lib/shenzhen/plugins/testflight.rb
219
218
  - ./lib/shenzhen/version.rb
220
219
  - ./lib/shenzhen/xcodebuild.rb
221
220
  - ./lib/shenzhen.rb
@@ -228,6 +227,7 @@ files:
228
227
  - ./shenzhen-0.10.3.gem
229
228
  - ./shenzhen-0.11.0.gem
230
229
  - ./shenzhen-0.11.1.gem
230
+ - ./shenzhen-0.11.2.gem
231
231
  - ./shenzhen.gemspec
232
232
  - bin/ipa
233
233
  homepage: http://nomad-cli.com
@@ -1,99 +0,0 @@
1
- require 'json'
2
- require 'openssl'
3
- require 'faraday'
4
- require 'faraday_middleware'
5
-
6
- module Shenzhen::Plugins
7
- module TestFlight
8
- class Client
9
- HOSTNAME = 'testflightapp.com'
10
-
11
- def initialize(api_token, team_token)
12
- @api_token, @team_token = api_token, team_token
13
- @connection = Faraday.new(:url => "http://#{HOSTNAME}", :request => { :timeout => 120 }) do |builder|
14
- builder.request :multipart
15
- builder.request :json
16
- builder.response :json, :content_type => /\bjson$/
17
- builder.use FaradayMiddleware::FollowRedirects
18
- builder.adapter :net_http
19
- end
20
- end
21
-
22
- def upload_build(ipa, options)
23
- options.update({
24
- :api_token => @api_token,
25
- :team_token => @team_token,
26
- :file => Faraday::UploadIO.new(ipa, 'application/octet-stream')
27
- })
28
-
29
- if dsym_filename = options.delete(:dsym_filename)
30
- options[:dsym] = Faraday::UploadIO.new(dsym_filename, 'application/octet-stream')
31
- end
32
-
33
- @connection.post("/api/builds.json", options).on_complete do |env|
34
- yield env[:status], env[:body] if block_given?
35
- end
36
-
37
- rescue Faraday::Error::TimeoutError
38
- say_error "Timed out while uploading build. Check https://testflightapp.com/dashboard/applications/ to see if the upload was completed." and abort
39
- end
40
- end
41
- end
42
- end
43
-
44
- command :'distribute:testflight' do |c|
45
- c.syntax = "ipa distribute:testflight [options]"
46
- c.summary = "Distribute an .ipa file over testflight"
47
- c.description = ""
48
- c.option '-f', '--file FILE', ".ipa file for the build"
49
- c.option '-d', '--dsym FILE', "zipped .dsym package for the build"
50
- c.option '-a', '--api_token TOKEN', "API Token. Available at https://testflightapp.com/account/#api-token"
51
- c.option '-T', '--team_token TOKEN', "Team Token. Available at https://testflightapp.com/dashboard/team/edit/"
52
- c.option '-m', '--notes NOTES', "Release notes for the build"
53
- c.option '-l', '--lists LISTS', "Comma separated distribution list names which will receive access to the build"
54
- c.option '--notify', "Notify permitted teammates to install the build"
55
- c.option '--replace', "Replace binary for an existing build if one is found with the same name/bundle version"
56
-
57
- c.action do |args, options|
58
- determine_file! unless @file = options.file
59
- say_error "Missing or unspecified .ipa file" and abort unless @file and File.exist?(@file)
60
-
61
- determine_dsym! unless @dsym = options.dsym
62
- say_error "Specified dSYM.zip file doesn't exist" if @dsym and !File.exist?(@dsym)
63
-
64
- determine_testflight_api_token! unless @api_token = options.api_token || ENV['TESTFLIGHT_API_TOKEN']
65
- say_error "Missing API Token" and abort unless @api_token
66
-
67
- determine_testflight_team_token! unless @team_token = options.team_token || ENV['TESTFLIGHT_TEAM_TOKEN']
68
-
69
- determine_notes! unless @notes = options.notes
70
- say_error "Missing release notes" and abort unless @notes
71
-
72
- parameters = {}
73
- parameters[:file] = @file
74
- parameters[:notes] = @notes
75
- parameters[:dsym_filename] = @dsym if @dsym
76
- parameters[:notify] = "true" if options.notify
77
- parameters[:replace] = "true" if options.replace
78
- parameters[:distribution_lists] = options.lists if options.lists
79
-
80
- client = Shenzhen::Plugins::TestFlight::Client.new(@api_token, @team_token)
81
- response = client.upload_build(@file, parameters)
82
- case response.status
83
- when 200...300
84
- say_ok "Build successfully uploaded to TestFlight"
85
- else
86
- say_error "Error uploading to TestFlight: #{response.body}" and abort
87
- end
88
- end
89
-
90
- private
91
-
92
- def determine_testflight_api_token!
93
- @api_token ||= ask "API Token:"
94
- end
95
-
96
- def determine_testflight_team_token!
97
- @team_token ||= ask "Team Token:"
98
- end
99
- end