shenzhen 0.3.0 → 0.3.1
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 +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
|
+

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