shenzhen 0.11.2 → 0.12.0

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