shenzhen 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shenzhen (0.0.3)
4
+ shenzhen (0.1.0)
5
5
  commander (~> 4.1.2)
6
6
  faraday (~> 0.8.0)
7
7
  faraday_middleware (~> 0.8.7)
@@ -1,5 +1,5 @@
1
1
  module Shenzhen
2
- VERSION = '0.0.3'
2
+ VERSION = '0.1.0'
3
3
  end
4
4
 
5
5
  require 'shenzhen/agvtool'
@@ -21,9 +21,16 @@ command :build do |c|
21
21
 
22
22
  determine_workspace_or_project! unless @workspace || @project
23
23
 
24
- determine_configuration! unless @configuration
25
- say_error "Configuration #{@configuration} not found" and abort unless @xcodebuild_info.build_configurations.include?(@configuration)
26
-
24
+ if @workspace
25
+ unless @configuration
26
+ say_warning "Configuration was not passed, defaulting to Debug" unless @configuration
27
+ @configuration = "Debug"
28
+ end
29
+ else
30
+ determine_configuration! unless @configuration
31
+ say_error "Configuration #{@configuration} not found" and abort unless @xcodebuild_info.build_configurations.include?(@configuration)
32
+ end
33
+
27
34
  determine_scheme! unless @scheme
28
35
  say_error "Scheme #{@scheme} not found" and abort unless @xcodebuild_info.schemes.include?(@scheme)
29
36
 
@@ -39,17 +46,20 @@ command :build do |c|
39
46
  flags << "-configuration #{@configuration}"
40
47
 
41
48
  ENV['CC'] = nil # Fix for RVM
42
- abort unless system "xcodebuild #{flags.join(' ')} clean build 1> /dev/null"
49
+ abort unless system %{xcodebuild #{flags.join(' ')} clean build 1> /dev/null}
43
50
 
44
51
  log "xcrun", "PackageApplication"
45
52
 
46
53
  @xcodebuild_settings = Shenzhen::XcodeBuild.settings(flags)
47
-
48
54
  @app_path = File.join(@xcodebuild_settings['BUILT_PRODUCTS_DIR'], @xcodebuild_settings['PRODUCT_NAME']) + ".app"
49
55
  @dsym_path = @app_path + ".dSYM"
56
+ @dsym_filename = "#{@xcodebuild_settings['PRODUCT_NAME']}.app.dSYM"
50
57
  @ipa_path = File.join(Dir.pwd, @xcodebuild_settings['PRODUCT_NAME']) + ".ipa"
51
58
  abort unless system %{xcrun -sdk iphoneos PackageApplication -v "#{@app_path}" -o "#{@ipa_path}" --embed "#{@dsym_path}" 1> /dev/null}
52
59
 
60
+ log "zip", @dsym_filename
61
+ abort unless system %{cp -r "#{@dsym_path}" . && zip -r "#{@dsym_filename}.zip" "#{@dsym_filename}" >/dev/null && rm -rf "#{@dsym_filename}"}
62
+
53
63
  say_ok "#{File.basename(@ipa_path)} successfully built" unless options.quiet
54
64
  end
55
65
 
@@ -25,6 +25,10 @@ module Shenzhen::Plugins
25
25
  :file => Faraday::UploadIO.new(ipa, 'application/octet-stream')
26
26
  })
27
27
 
28
+ if dsym_filename = options.delete(:dsym_filename)
29
+ options[:dsym] = Faraday::UploadIO.new(dsym_filename, 'application/octet-stream')
30
+ end
31
+
28
32
  @connection.post("/api/builds.json", options).on_complete do |env|
29
33
  yield env[:status], env[:body] if block_given?
30
34
  end
@@ -38,6 +42,7 @@ command :'distribute:testflight' do |c|
38
42
  c.summary = "Distribute an .ipa file over testflight"
39
43
  c.description = ""
40
44
  c.option '-f', '--file FILE', ".ipa file for the build"
45
+ c.option '-d', '--dsym FILE', "zipped .dsym package for the build"
41
46
  c.option '-a', '--api_token TOKEN', "API Token. Available at https://testflightapp.com/account/#api-token"
42
47
  c.option '-T', '--team_token TOKEN', "Team Token. Available at https://testflightapp.com/dashboard/team/edit/"
43
48
  c.option '-m', '--notes NOTES', "Release notes for the build"
@@ -50,6 +55,9 @@ command :'distribute:testflight' do |c|
50
55
  determine_file! unless @file = options.file
51
56
  say_error "Missing or unspecified .ipa file" and abort unless @file and File.exist?(@file)
52
57
 
58
+ determine_dsym! unless @dsym = options.dsym
59
+ say_error "Specified dSYM.zip file doesn't exist" if @dsym and !File.exist?(@dsym)
60
+
53
61
  determine_api_token! unless @api_token = options.api_token
54
62
  say_error "Missing API Token" and abort unless @api_token
55
63
 
@@ -61,6 +69,7 @@ command :'distribute:testflight' do |c|
61
69
  parameters = {}
62
70
  parameters[:file] = @file
63
71
  parameters[:notes] = @notes
72
+ parameters[:dsym_filename] = @dsym if @dsym
64
73
  parameters[:notify] = "true" if options.notify
65
74
  parameters[:replace] = "true" if options.replace
66
75
  parameters[:distribution_lists] = options.lists if options.lists
@@ -95,6 +104,16 @@ command :'distribute:testflight' do |c|
95
104
  end
96
105
  end
97
106
 
107
+ def determine_dsym!
108
+ dsym_files = Dir['*.dSYM.zip']
109
+ @dsym ||= case dsym_files.length
110
+ when 0 then nil
111
+ when 1 then dsym_files.first
112
+ else
113
+ @dsym = choose "Select a .dSYM.zip file:", *dsym_files
114
+ end
115
+ end
116
+
98
117
  def determine_notes!
99
118
  placeholder = %{What's new in this release: }
100
119
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shenzhen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-05 00:00:00.000000000Z
12
+ date: 2012-10-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70336021193580 !ruby/object:Gem::Requirement
16
+ requirement: &70357169989920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.6.1
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70336021193580
24
+ version_requirements: *70357169989920
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70336021191180 !ruby/object:Gem::Requirement
27
+ requirement: &70357169987940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.9.2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70336021191180
35
+ version_requirements: *70357169987940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: commander
38
- requirement: &70336021186200 !ruby/object:Gem::Requirement
38
+ requirement: &70357169985980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 4.1.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70336021186200
46
+ version_requirements: *70357169985980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: json
49
- requirement: &70336021179440 !ruby/object:Gem::Requirement
49
+ requirement: &70357169976100 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.7.3
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70336021179440
57
+ version_requirements: *70357169976100
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: faraday
60
- requirement: &70336021177320 !ruby/object:Gem::Requirement
60
+ requirement: &70357169973340 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.8.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70336021177320
68
+ version_requirements: *70357169973340
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faraday_middleware
71
- requirement: &70336021175800 !ruby/object:Gem::Requirement
71
+ requirement: &70357169971200 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 0.8.7
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70336021175800
79
+ version_requirements: *70357169971200
80
80
  description: CLI for Building & Distributing iOS Apps (.ipa Files)
81
81
  email: m@mattt.me
82
82
  executables:
@@ -96,8 +96,6 @@ files:
96
96
  - ./LICENSE
97
97
  - ./Rakefile
98
98
  - ./README.md
99
- - ./shenzhen-0.0.1.gem
100
- - ./shenzhen-0.0.2.gem
101
99
  - ./shenzhen.gemspec
102
100
  - bin/ipa
103
101
  homepage: http://github.com/mattt/shenzhen
@@ -114,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
112
  version: '0'
115
113
  segments:
116
114
  - 0
117
- hash: 3444458777323647907
115
+ hash: -2320972868632584491
118
116
  required_rubygems_version: !ruby/object:Gem::Requirement
119
117
  none: false
120
118
  requirements:
@@ -123,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
121
  version: '0'
124
122
  segments:
125
123
  - 0
126
- hash: 3444458777323647907
124
+ hash: -2320972868632584491
127
125
  requirements: []
128
126
  rubyforge_project:
129
127
  rubygems_version: 1.8.15
Binary file
Binary file