shenzhen 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +15 -15
- data/README.md +22 -28
- data/lib/shenzhen.rb +1 -1
- data/lib/shenzhen/commands/build.rb +6 -5
- data/lib/shenzhen/plugins/hockeyapp.rb +2 -1
- data/lib/shenzhen/xcodebuild.rb +1 -2
- data/shenzhen.gemspec +6 -6
- metadata +31 -52
- data/shenzhen-0.2.5.gem +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 40a600e0bd82337030039987135497e70d020729
|
4
|
+
data.tar.gz: 4622921e0dbd0f0eb7aed77633029afab7d7b9ba
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 563f8060327384c06916c78f09c8d525598762d028a0696f79641ff2b05f045ac52334bd73a4d025e8a1b11bc4687b4553c280243a000adf8d8b61c0ea34edc0
|
7
|
+
data.tar.gz: 8954faa5264bbbc988ac6122d68d0da68290f09cc2c357adcefad44c78c4c77eb331a12a7c7049262b0ce5bf719ececeff94687cb7ccfcc05291683a3e93ae1a
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shenzhen (0.3.
|
5
|
-
commander (~> 4.1
|
6
|
-
faraday (~> 0.8
|
7
|
-
faraday_middleware (~> 0.
|
8
|
-
json (~> 1.
|
4
|
+
shenzhen (0.3.1)
|
5
|
+
commander (~> 4.1)
|
6
|
+
faraday (~> 0.8)
|
7
|
+
faraday_middleware (~> 0.9)
|
8
|
+
json (~> 1.8)
|
9
9
|
|
10
10
|
GEM
|
11
|
-
remote:
|
11
|
+
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
commander (4.1.
|
13
|
+
commander (4.1.3)
|
14
14
|
highline (~> 1.6.11)
|
15
|
-
faraday (0.8.
|
15
|
+
faraday (0.8.7)
|
16
16
|
multipart-post (~> 1.1)
|
17
|
-
faraday_middleware (0.
|
17
|
+
faraday_middleware (0.9.0)
|
18
18
|
faraday (>= 0.7.4, < 0.9)
|
19
|
-
highline (1.6.
|
20
|
-
json (1.
|
21
|
-
multipart-post (1.
|
22
|
-
rake (0.9.
|
19
|
+
highline (1.6.19)
|
20
|
+
json (1.8.0)
|
21
|
+
multipart-post (1.2.0)
|
22
|
+
rake (0.9.6)
|
23
23
|
rspec (0.6.4)
|
24
24
|
|
25
25
|
PLATFORMS
|
26
26
|
ruby
|
27
27
|
|
28
28
|
DEPENDENCIES
|
29
|
-
rake
|
30
|
-
rspec
|
29
|
+
rake
|
30
|
+
rspec
|
31
31
|
shenzhen!
|
data/README.md
CHANGED
@@ -1,50 +1,44 @@
|
|
1
|
-
|
2
|
-
**CLI for Building & Distributing iOS Apps (.ipa Files)**
|
1
|
+
![Shenzhen](https://raw.github.com/mattt/nomad-cli.com/assets/shenzhen-banner.png)
|
3
2
|
|
4
3
|
Create `.ipa` files and then distribute them with [TestFlight](https://testflightapp.com/) or [HockeyApp](http://www.hockeyapp.net), all from the command line!
|
5
4
|
|
6
5
|
Less cumbersome than clicking around in Xcode, and less hassle than rolling your own build script--Shenzhen radically improves the process of getting new builds out to testers and enterprises.
|
7
6
|
|
8
|
-
> `shenzhen` is named for [深圳](http://en.wikipedia.org/wiki/Shenzhen), the Chinese city famous for its role as the center of manufacturing for a majority of consumer electronics, including iPhones and iPads.
|
9
|
-
|
7
|
+
> `shenzhen` is named for [深圳](http://en.wikipedia.org/wiki/Shenzhen), the Chinese city famous for its role as the center of manufacturing for a majority of consumer electronics, including iPhones and iPads.
|
8
|
+
> It's part of a series of world-class command-line utilities for iOS development, which includes [Cupertino](https://github.com/mattt/cupertino) (Apple Dev Center management), [Houston](https://github.com/mattt/houston) (Push Notifications), [Venice](https://github.com/mattt/venice) (In-App Purchase Receipt Verification), and [Dubai](https://github.com/mattt/dubai) (Passbook pass generation).
|
9
|
+
|
10
10
|
## Installation
|
11
11
|
|
12
|
-
|
13
|
-
$ gem install shenzhen
|
14
|
-
```
|
12
|
+
$ gem install shenzhen
|
15
13
|
|
16
14
|
## Usage
|
17
15
|
|
18
16
|
Shenzhen adds the `ipa` command to your PATH:
|
19
17
|
|
20
|
-
|
21
|
-
$ ipa
|
18
|
+
$ ipa
|
22
19
|
|
23
|
-
|
20
|
+
Build and distribute iOS apps (.ipa files)
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
22
|
+
Commands:
|
23
|
+
build Create a new .ipa file for your app
|
24
|
+
distribute:testflight Distribute an .ipa file over TestFlight
|
25
|
+
distribute:hockeyapp Distribute an .ipa file over HockeyApp
|
26
|
+
distribute:ftp Distribute an .ipa file over FTP
|
27
|
+
help Display global or [command] help documentation.
|
31
28
|
|
32
|
-
|
33
|
-
|
29
|
+
Aliases:
|
30
|
+
distribute distribute:testflight
|
34
31
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
```
|
32
|
+
Global Options:
|
33
|
+
-h, --help Display help documentation
|
34
|
+
-v, --version Display version information
|
35
|
+
-t, --trace Display backtrace when an error occurs
|
40
36
|
|
41
37
|
### Building & Distribution
|
42
38
|
|
43
|
-
|
44
|
-
$
|
45
|
-
$ ipa
|
46
|
-
$ ipa distribute
|
47
|
-
```
|
39
|
+
$ cd /path/to/iOS Project/
|
40
|
+
$ ipa build
|
41
|
+
$ ipa distribute
|
48
42
|
|
49
43
|
## Contact
|
50
44
|
|
data/lib/shenzhen.rb
CHANGED
@@ -25,7 +25,7 @@ command :build do |c|
|
|
25
25
|
|
26
26
|
determine_configuration! unless @configuration
|
27
27
|
say_error "Configuration #{@configuration} not found" and abort unless @xcodebuild_info.build_configurations.include?(@configuration)
|
28
|
-
|
28
|
+
|
29
29
|
determine_scheme! unless @scheme
|
30
30
|
say_error "Scheme #{@scheme} not found" and abort unless @xcodebuild_info.schemes.include?(@scheme)
|
31
31
|
|
@@ -51,11 +51,12 @@ command :build do |c|
|
|
51
51
|
@target, @xcodebuild_settings = Shenzhen::XcodeBuild.settings(*flags).detect{|target, settings| settings['WRAPPER_EXTENSION'] == "app"}
|
52
52
|
say_error "App settings could not be found." and abort unless @xcodebuild_settings
|
53
53
|
|
54
|
-
@app_path = File.join(@xcodebuild_settings['BUILT_PRODUCTS_DIR'], @xcodebuild_settings['
|
54
|
+
@app_path = File.join(@xcodebuild_settings['BUILT_PRODUCTS_DIR'], @xcodebuild_settings['WRAPPER_NAME'])
|
55
55
|
@dsym_path = @app_path + ".dSYM"
|
56
|
-
@dsym_filename = "#{@xcodebuild_settings['
|
57
|
-
@
|
58
|
-
|
56
|
+
@dsym_filename = "#{@xcodebuild_settings['WRAPPER_NAME']}.dSYM"
|
57
|
+
@ipa_name = @xcodebuild_settings['WRAPPER_NAME'].gsub(@xcodebuild_settings['WRAPPER_SUFFIX'], "") + ".ipa"
|
58
|
+
@ipa_path = File.join(Dir.pwd, @ipa_name)
|
59
|
+
|
59
60
|
log "xcrun", "PackageApplication"
|
60
61
|
abort unless system %{xcrun -sdk iphoneos PackageApplication -v "#{@app_path}" -o "#{@ipa_path}" --embed "#{@dsym_path}" 1> /dev/null}
|
61
62
|
|
@@ -54,6 +54,7 @@ command :'distribute:hockeyapp' do |c|
|
|
54
54
|
c.option '--tags TAGS', "Comma separated list of tags which will receive access to the build"
|
55
55
|
c.option '--notify', "Notify permitted teammates to install the build"
|
56
56
|
c.option '--downloadOff', "Upload but don't allow download of this version just yet"
|
57
|
+
c.option '--mandatory', "Make this update mandatory"
|
57
58
|
|
58
59
|
c.action do |args, options|
|
59
60
|
determine_file! unless @file = options.file
|
@@ -76,7 +77,7 @@ command :'distribute:hockeyapp' do |c|
|
|
76
77
|
parameters[:status] = options.downloadOff ? "1" : "2"
|
77
78
|
parameters[:tags] = options.tags if options.tags
|
78
79
|
parameters[:dsym_filename] = @dsym if @dsym
|
79
|
-
|
80
|
+
parameters[:mandatory] = "1" if options.mandatory
|
80
81
|
|
81
82
|
client = Shenzhen::Plugins::HockeyApp::Client.new(@api_token)
|
82
83
|
response = client.upload_build(@file, parameters)
|
data/lib/shenzhen/xcodebuild.rb
CHANGED
@@ -65,12 +65,11 @@ module Shenzhen::XcodeBuild
|
|
65
65
|
raise NilOutputError unless /\S/ === output
|
66
66
|
|
67
67
|
lines = output.split(/\n/)
|
68
|
-
lines.shift
|
69
68
|
|
70
69
|
settings, target = {}, nil
|
71
70
|
lines.each do |line|
|
72
71
|
case line
|
73
|
-
when /Build settings for action build and target (
|
72
|
+
when /Build settings for action build and target \"?([^":]+)/
|
74
73
|
target = $1
|
75
74
|
settings[target] = {}
|
76
75
|
else
|
data/shenzhen.gemspec
CHANGED
@@ -12,13 +12,13 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = "Shenzhen"
|
13
13
|
s.description = "CLI for Building & Distributing iOS Apps (.ipa Files)"
|
14
14
|
|
15
|
-
s.
|
16
|
-
s.
|
15
|
+
s.add_dependency "commander", "~> 4.1"
|
16
|
+
s.add_dependency "json", "~> 1.8"
|
17
|
+
s.add_dependency "faraday", "~> 0.8"
|
18
|
+
s.add_dependency "faraday_middleware", "~> 0.9"
|
17
19
|
|
18
|
-
s.
|
19
|
-
s.
|
20
|
-
s.add_dependency "faraday", "~> 0.8.0"
|
21
|
-
s.add_dependency "faraday_middleware", "~> 0.8.7"
|
20
|
+
s.add_development_dependency "rspec"
|
21
|
+
s.add_development_dependency "rake"
|
22
22
|
|
23
23
|
s.files = Dir["./**/*"].reject { |file| file =~ /\.\/(bin|log|pkg|script|spec|test|vendor)/ }
|
24
24
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,112 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shenzhen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mattt Thompson
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-05-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: commander
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
-
type: :
|
19
|
+
version: '4.1'
|
20
|
+
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: '4.1'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: json
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
38
|
-
type: :
|
33
|
+
version: '1.8'
|
34
|
+
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: '1.8'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
42
|
+
name: faraday
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
47
|
+
version: '0.8'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
54
|
+
version: '0.8'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
56
|
+
name: faraday_middleware
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
61
|
+
version: '0.9'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
68
|
+
version: '0.9'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
70
|
+
name: rspec
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0
|
86
|
-
type: :
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0
|
82
|
+
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
84
|
+
name: rake
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version: 0
|
102
|
-
type: :
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0
|
96
|
+
version: '0'
|
110
97
|
description: CLI for Building & Distributing iOS Apps (.ipa Files)
|
111
98
|
email: m@mattt.me
|
112
99
|
executables:
|
@@ -129,37 +116,29 @@ files:
|
|
129
116
|
- ./LICENSE
|
130
117
|
- ./Rakefile
|
131
118
|
- ./README.md
|
132
|
-
- ./shenzhen-0.2.5.gem
|
133
119
|
- ./shenzhen.gemspec
|
134
120
|
- bin/ipa
|
135
121
|
homepage: http://github.com/mattt/shenzhen
|
136
122
|
licenses: []
|
123
|
+
metadata: {}
|
137
124
|
post_install_message:
|
138
125
|
rdoc_options: []
|
139
126
|
require_paths:
|
140
127
|
- lib
|
141
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
-
none: false
|
143
129
|
requirements:
|
144
130
|
- - ! '>='
|
145
131
|
- !ruby/object:Gem::Version
|
146
132
|
version: '0'
|
147
|
-
segments:
|
148
|
-
- 0
|
149
|
-
hash: 4330203540217877831
|
150
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
134
|
requirements:
|
153
135
|
- - ! '>='
|
154
136
|
- !ruby/object:Gem::Version
|
155
137
|
version: '0'
|
156
|
-
segments:
|
157
|
-
- 0
|
158
|
-
hash: 4330203540217877831
|
159
138
|
requirements: []
|
160
139
|
rubyforge_project:
|
161
|
-
rubygems_version:
|
140
|
+
rubygems_version: 2.0.3
|
162
141
|
signing_key:
|
163
|
-
specification_version:
|
142
|
+
specification_version: 4
|
164
143
|
summary: Shenzhen
|
165
144
|
test_files: []
|
data/shenzhen-0.2.5.gem
DELETED
Binary file
|