ios3 0.0.4 → 0.0.5

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: 24cc960399f9b6253eac28f1712283e204fb2206
4
- data.tar.gz: cdfa960995122c7150bf0b19c55302044d0e39c8
3
+ metadata.gz: e0d696b5a1adbb60801704521811ca912192c60f
4
+ data.tar.gz: 030075eeec06ed0adf160ee904965db6e2542955
5
5
  SHA512:
6
- metadata.gz: 2fc6e7b0e009a973a7b87d41b7e8a6a4e1c99d95121c417f52d56b00f6ddba27600f73edd6f3d53850c7ac946bade4ef2771d44073b81399831008211ab9aaa0
7
- data.tar.gz: 5cacbcde88680175f6c841c8060e755e38b74afbf44890c6c95e262f910fcf69bf3f01e9e03bb2b2bef17f87d50ea5fad3205f0cd1720d8b0ad908e030711761
6
+ metadata.gz: 60cb16503e6c967863841a33c1e4c5386ee1bc9f02686fd87754e81d0484b8b6a7fa44dcce56b89c5a1075575f53674a552b211e3b7e65d544b1771d209cb84a
7
+ data.tar.gz: 5ec93fa23e1efe72faf27543273abe513a179646ad6008eb644939f597b10b2ed9f7c5799611ca4a5dbd2cfd4f47eb6664c34406463e6cf30ccea03c2894149e
@@ -6,6 +6,6 @@ require 'ios3'
6
6
 
7
7
  # Ios3::CLI.run(ARGV)
8
8
  program :version, Ios3::VERSION
9
- program :description, 'Build and distribute iOS apps (.ipa files)'
9
+ program :description, 'Build and distribute iOS apps (.ipa files) via S3'
10
10
 
11
11
  require 'ios3/s3'
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Andrew Gertig"]
10
10
  spec.email = ["@gertig"]
11
11
  spec.summary = %q{Distribute ad hoc iOS apps via Amazon S3}
12
- spec.description = %q{This tool is focused primarily on apps that have been archived using RubyMotion.}
12
+ spec.description = %q{This utility is focused primarily on apps that have been archived using RubyMotion.}
13
13
  spec.homepage = "http://github.com/gertig/ios3"
14
14
  spec.license = "MIT"
15
15
 
@@ -18,9 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency('aws-sdk', '~> 1.8')
21
+ # spec.add_dependency('aws-sdk', '~> 1.8')
22
+ spec.add_dependency('aws-sdk', '~> 2.0.24')
22
23
  # spec.add_dependency('osx-plist', '~> 1.0')
23
24
  spec.add_dependency("commander", "~> 4.3")
25
+ spec.add_dependency("CFPropertyList", "~> 2.3.0")
24
26
 
25
27
  spec.add_development_dependency "bundler", "~> 1.6"
26
28
  # spec.add_development_dependency "rake"
@@ -1,4 +1,6 @@
1
1
  require 'aws-sdk'
2
+ require 'cfpropertylist'
3
+ require 'json'
2
4
 
3
5
  # Workflow
4
6
  # Add gem to Gemfile or gem install
@@ -26,17 +28,15 @@ require 'aws-sdk'
26
28
  module S3
27
29
  class Client
28
30
  def initialize(access_key_id, secret_access_key, region)
29
- @s3 = AWS::S3.new(:access_key_id => access_key_id,
31
+ # credentials = Aws.Credentials.new(access_key_id, secret_access_key)
32
+ # @s3 = Aws::S3::Client.new(credentials: credentials, region: region)
33
+ @s3 = Aws::S3::Client.new(:access_key_id => access_key_id,
30
34
  :secret_access_key => secret_access_key,
31
35
  :region => region)
32
36
  end
33
37
 
34
38
  def upload_build(ipa, options)
35
- # path = expand_path_with_substitutions_from_ipa_plist(ipa, options[:path]) if options[:path]
36
-
37
- # @s3.buckets.create(options[:bucket]) if options[:create]
38
-
39
- bucket = @s3.buckets[options[:bucket]]
39
+ path = options[:path]
40
40
 
41
41
  files = []
42
42
  files << ipa
@@ -45,11 +45,47 @@ module S3
45
45
  basename = File.basename(file)
46
46
  key = path ? File.join(path, basename) : basename
47
47
  File.open(file) do |descriptor|
48
- bucket.objects.create(key, descriptor, :acl => options[:acl])
48
+ params = {body: descriptor, bucket: options[:bucket], key: key, acl: options[:acl]}
49
+ response = @s3.put_object(params)
50
+
51
+ upload_manifest(options)
49
52
  end
50
53
  end
51
54
  end
52
55
 
56
+ private
57
+
58
+ def upload_manifest(options)
59
+ key = File.join(options[:path], "#{options[:cf_bundle_name]}.plist")
60
+ params = {body: build_manifest_plist(options), bucket: options[:bucket], key: key, acl: options[:acl] }
61
+ @s3.put_object(params)
62
+
63
+ puts itms_url(options)
64
+ end
65
+
66
+ def itms_url(options)
67
+ "itms-services://?#{URI.encode_www_form(:action => "download-manifest", :url => plist_url(options))}"
68
+ end
69
+
70
+ def plist_url(options)
71
+ "https://s3.amazonaws.com/#{options[:bucket]}/#{options[:path]}/#{options[:cf_bundle_name]}.plist"
72
+ end
73
+
74
+ def determine_ipa_url(options)
75
+ CGI.escapeHTML("https://s3.amazonaws.com/#{options[:bucket]}/#{options[:path]}/#{options[:cf_bundle_name]}.ipa")
76
+ end
77
+
78
+ def build_manifest_plist(options)
79
+ ipa_url = determine_ipa_url(options)
80
+ cf_bundle_identifier = options[:cf_bundle_identifier]
81
+ cf_bundle_version = options[:cf_bundle_version]
82
+ cf_bundle_name = options[:cf_bundle_name]
83
+
84
+ # ERB.new(File.read('templates/manifest.plist.erb')).result(binding)
85
+ return ERB.new(File.read(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'manifest.plist.erb'))).result(binding)
86
+
87
+ end
88
+
53
89
  # private
54
90
  #
55
91
  # def expand_path_with_substitutions_from_ipa_plist(ipa, path)
@@ -74,14 +110,22 @@ module S3
74
110
  end
75
111
  end
76
112
 
77
- # command :'manifest' do |c|
78
- # c.syntax = "ios3 manifest [options]"
79
- # escaped_ipa_url - can we get this from RubyMotion /build/iPhoneOS-8.0-Release/{app_name}.ipa
80
- # bundle_identifier
81
- # app_version
82
- # app_name
83
- #
84
- # end
113
+ command :'testing' do |c|
114
+ c.syntax = "ios3 testing [options]"
115
+ c.summary = "CFBundle{Something}"
116
+ c.description = ""
117
+
118
+ c.action do |args, options|
119
+ say_ok "Testing"
120
+ # determine_cf_bundle_info!
121
+ # ERB.new(File.read('templates/manifest.plist.erb')).result(binding)
122
+ # puts File.read('templates/manifest.plist.erb')
123
+ # ERB.new(File.read(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'manifest.plist.erb'))).result(binding)
124
+ puts File.read(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'manifest.plist.erb'))
125
+ say_ok "Done Testing"
126
+ end
127
+
128
+ end
85
129
 
86
130
  command :'upload' do |c|
87
131
  c.syntax = "ios3 upload [options]"
@@ -107,15 +151,17 @@ command :'upload' do |c|
107
151
  say_error "Missing bucket" and abort unless @bucket
108
152
 
109
153
  determine_region!
110
-
111
154
  determine_acl!
112
155
 
113
- determine_path!
156
+ determine_cf_bundle_info!
157
+
158
+ determine_s3_path!
114
159
 
115
160
  client = S3::Client.new(@access_key_id, @secret_access_key, @region)
116
161
 
117
162
  begin
118
- client.upload_build @ipa, {:bucket => @bucket, :acl => @acl, :path => @path}
163
+ say_ok "Uploading..."
164
+ client.upload_build @ipa, {:bucket => @bucket, :acl => @acl, :path => @s3_path, :cf_bundle_name => @cf_bundle_name, :cf_bundle_version => @cf_bundle_version, :cf_bundle_identifier => @cf_bundle_identifier}
119
165
  say_ok "Build successfully uploaded to S3"
120
166
  rescue => exception
121
167
  say_error "Error while uploading to S3: #{exception}"
@@ -124,15 +170,26 @@ command :'upload' do |c|
124
170
 
125
171
  private
126
172
 
173
+ def path_to_ipa
174
+ Dir.exists?("test-data") ? "./test-data/build/{iPhoneOS}*-Release/*.{ipa}" : "./build/{iPhoneOS}*-Release/*.{ipa}"
175
+ end
176
+
177
+ def path_to_plist
178
+ path = Dir.exists?("test-data") ? "./test-data/build/{iPhoneOS}*-Release/*.app/Info.plist" : "./build/{iPhoneOS}*-Release/*.app/Info.plist"
179
+ Dir[path].last
180
+ end
181
+
127
182
  def determine_ipa!
128
183
  unless File.exist?('Rakefile')
129
184
  say_error "Run on root directoy of RubyMotion project."
130
185
  end
131
186
 
187
+ # plist = Dir["./test-data/build/{iPhoneOS}*-Release/*.app/Info.plist"].last
188
+
132
189
  # select *.ipa in Release directory.
133
- @ipa = Dir.glob("./build/{iPhoneOS}*-Release/*.{ipa}").first
190
+ @ipa = Dir.glob(path_to_ipa).first
134
191
  unless @ipa
135
- say_error "Can't find *.ipa. First, need to create archive file with `rake archive:distribution'."
192
+ say_error "Can't find *.ipa. First, need to create archive with `rake archive:distribution'."
136
193
  end
137
194
  @ipa
138
195
  end
@@ -157,11 +214,21 @@ command :'upload' do |c|
157
214
  end
158
215
 
159
216
  def determine_acl!
160
- @acl = "public_read"
217
+ @acl = "public-read"
161
218
  end
162
219
 
163
- def determine_path!
164
- # @path = "/ios3/#{cf_bundle_name}/#{cf_bundle_version}"
165
- @path = ""
220
+ def determine_s3_path!
221
+ @s3_path = "ad-hoc-distribution/#{@cf_bundle_name}/#{@cf_bundle_version}"
166
222
  end
223
+
224
+ def determine_cf_bundle_info!
225
+ plist = CFPropertyList::List.new(:file => path_to_plist)
226
+ data = CFPropertyList.native_types(plist.value)
227
+
228
+ @cf_bundle_name = data['CFBundleName']
229
+ @cf_bundle_version = data['CFBundleVersion']
230
+ @cf_bundle_identifier = data['CFBundleIdentifier']
231
+ end
232
+
233
+
167
234
  end
@@ -1,3 +1,3 @@
1
1
  module Ios3
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -11,19 +11,19 @@
11
11
  <key>kind</key>
12
12
  <string>software-package</string>
13
13
  <key>url</key>
14
- <string><%= escaped_ipa_url %></string>
14
+ <string><%= ipa_url %></string>
15
15
  </dict>
16
16
  </array>
17
17
  <key>metadata</key>
18
18
  <dict>
19
19
  <key>bundle-identifier</key>
20
- <string><%= bundle_identifier %></string>
20
+ <string><%= cf_bundle_identifier %></string>
21
21
  <key>bundle-version</key>
22
- <string><%= app_version %></string>
22
+ <string><%= cf_bundle_version %></string>
23
23
  <key>kind</key>
24
24
  <string>software</string>
25
25
  <key>title</key>
26
- <string><%= app_name %></string>
26
+ <string><%= cf_bundle_name %></string>
27
27
  </dict>
28
28
  </dict>
29
29
  </array>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>get-task-allow</key>
6
+ <false/>
7
+ <key>application-identifier</key>
8
+ <string>45287K8L3E.com.humanswithkids.Blog</string>
9
+ </dict>
10
+ </plist>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>English</string>
7
+ <key>CFBundleIdentifier</key>
8
+ <string>com.apple.xcode.dsym.com.humanswithkids.Blog</string>
9
+ <key>CFBundleInfoDictionaryVersion</key>
10
+ <string>6.0</string>
11
+ <key>CFBundlePackageType</key>
12
+ <string>dSYM</string>
13
+ <key>CFBundleSignature</key>
14
+ <string>????</string>
15
+ <key>CFBundleShortVersionString</key>
16
+ <string>1</string>
17
+ <key>CFBundleVersion</key>
18
+ <string>1.0.0</string>
19
+ </dict>
20
+ </plist>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>rules</key>
6
+ <dict>
7
+ <key>.*</key>
8
+ <true/>
9
+ <key>Info.plist</key>
10
+ <dict>
11
+ <key>omit</key>
12
+ <true/>
13
+ <key>weight</key>
14
+ <real>10</real>
15
+ </dict>
16
+ <key>ResourceRules.plist</key>
17
+ <dict>
18
+ <key>omit</key>
19
+ <true/>
20
+ <key>weight</key>
21
+ <real>100</real>
22
+ </dict>
23
+ </dict>
24
+ </dict>
25
+ </plist>
@@ -0,0 +1,200 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>files</key>
6
+ <dict>
7
+ <key>Default-568h@2x.png</key>
8
+ <data>
9
+ +KcpJy7DaVvFOu0VOaYtGWTE+SU=
10
+ </data>
11
+ <key>Default-667h@2x.png</key>
12
+ <data>
13
+ KBimUV29Wl650ADoKM2i6mnEqYs=
14
+ </data>
15
+ <key>Default-736h@3x.png</key>
16
+ <data>
17
+ vOdBa0T+oxcKDiqwzBlecwq9Kbc=
18
+ </data>
19
+ <key>PkgInfo</key>
20
+ <data>
21
+ HpadEcH4ifWxUt0ljemb7BFlyC8=
22
+ </data>
23
+ <key>SVProgressHUD.bundle/angle-mask.png</key>
24
+ <data>
25
+ ZP3MEyOzyiMbxQeDcSHXarN3E2I=
26
+ </data>
27
+ <key>SVProgressHUD.bundle/angle-mask@2x.png</key>
28
+ <data>
29
+ bJrR0ylq3sQNppqIm9ryAXWPJzE=
30
+ </data>
31
+ <key>SVProgressHUD.bundle/angle-mask@3x.png</key>
32
+ <data>
33
+ e67DzzmwDyqECcm6R5/RNKjbVl8=
34
+ </data>
35
+ <key>SVProgressHUD.bundle/error.png</key>
36
+ <data>
37
+ 7dq6xarqzSdPyQEKKpVGUWcpCIc=
38
+ </data>
39
+ <key>SVProgressHUD.bundle/error@2x.png</key>
40
+ <data>
41
+ 14JkE/rT3Tfa4aP0CmgGdheZAds=
42
+ </data>
43
+ <key>SVProgressHUD.bundle/error@3x.png</key>
44
+ <data>
45
+ eWTkyKjL4ARvSmVff4vOLLV8GIc=
46
+ </data>
47
+ <key>SVProgressHUD.bundle/info.png</key>
48
+ <data>
49
+ 3a+aL7OOxxeZJlZ6Zc2apQJa+RI=
50
+ </data>
51
+ <key>SVProgressHUD.bundle/info@2x.png</key>
52
+ <data>
53
+ zOgABtFAzJh+TkQTHhT+kUnuBxE=
54
+ </data>
55
+ <key>SVProgressHUD.bundle/info@3x.png</key>
56
+ <data>
57
+ 6BsddkhQe1/ejnRHqBTSwG31h7k=
58
+ </data>
59
+ <key>SVProgressHUD.bundle/success.png</key>
60
+ <data>
61
+ fFFaIAdJaQLiHAHxtZdSu3UK9mw=
62
+ </data>
63
+ <key>SVProgressHUD.bundle/success@2x.png</key>
64
+ <data>
65
+ F+jTDjhSDE75FwiWoc3aVsqlOZU=
66
+ </data>
67
+ <key>SVProgressHUD.bundle/success@3x.png</key>
68
+ <data>
69
+ ktkPsgjbXsEzUyaptquUISBzqro=
70
+ </data>
71
+ <key>embedded.mobileprovision</key>
72
+ <data>
73
+ ZQHKXn4rN203rEtYY36S3IutRtY=
74
+ </data>
75
+ </dict>
76
+ <key>files2</key>
77
+ <dict>
78
+ <key>Default-568h@2x.png</key>
79
+ <data>
80
+ +KcpJy7DaVvFOu0VOaYtGWTE+SU=
81
+ </data>
82
+ <key>Default-667h@2x.png</key>
83
+ <data>
84
+ KBimUV29Wl650ADoKM2i6mnEqYs=
85
+ </data>
86
+ <key>Default-736h@3x.png</key>
87
+ <data>
88
+ vOdBa0T+oxcKDiqwzBlecwq9Kbc=
89
+ </data>
90
+ <key>PkgInfo</key>
91
+ <data>
92
+ HpadEcH4ifWxUt0ljemb7BFlyC8=
93
+ </data>
94
+ <key>SVProgressHUD.bundle/angle-mask.png</key>
95
+ <data>
96
+ ZP3MEyOzyiMbxQeDcSHXarN3E2I=
97
+ </data>
98
+ <key>SVProgressHUD.bundle/angle-mask@2x.png</key>
99
+ <data>
100
+ bJrR0ylq3sQNppqIm9ryAXWPJzE=
101
+ </data>
102
+ <key>SVProgressHUD.bundle/angle-mask@3x.png</key>
103
+ <data>
104
+ e67DzzmwDyqECcm6R5/RNKjbVl8=
105
+ </data>
106
+ <key>SVProgressHUD.bundle/error.png</key>
107
+ <data>
108
+ 7dq6xarqzSdPyQEKKpVGUWcpCIc=
109
+ </data>
110
+ <key>SVProgressHUD.bundle/error@2x.png</key>
111
+ <data>
112
+ 14JkE/rT3Tfa4aP0CmgGdheZAds=
113
+ </data>
114
+ <key>SVProgressHUD.bundle/error@3x.png</key>
115
+ <data>
116
+ eWTkyKjL4ARvSmVff4vOLLV8GIc=
117
+ </data>
118
+ <key>SVProgressHUD.bundle/info.png</key>
119
+ <data>
120
+ 3a+aL7OOxxeZJlZ6Zc2apQJa+RI=
121
+ </data>
122
+ <key>SVProgressHUD.bundle/info@2x.png</key>
123
+ <data>
124
+ zOgABtFAzJh+TkQTHhT+kUnuBxE=
125
+ </data>
126
+ <key>SVProgressHUD.bundle/info@3x.png</key>
127
+ <data>
128
+ 6BsddkhQe1/ejnRHqBTSwG31h7k=
129
+ </data>
130
+ <key>SVProgressHUD.bundle/success.png</key>
131
+ <data>
132
+ fFFaIAdJaQLiHAHxtZdSu3UK9mw=
133
+ </data>
134
+ <key>SVProgressHUD.bundle/success@2x.png</key>
135
+ <data>
136
+ F+jTDjhSDE75FwiWoc3aVsqlOZU=
137
+ </data>
138
+ <key>SVProgressHUD.bundle/success@3x.png</key>
139
+ <data>
140
+ ktkPsgjbXsEzUyaptquUISBzqro=
141
+ </data>
142
+ <key>embedded.mobileprovision</key>
143
+ <data>
144
+ ZQHKXn4rN203rEtYY36S3IutRtY=
145
+ </data>
146
+ </dict>
147
+ <key>rules</key>
148
+ <dict>
149
+ <key>.*</key>
150
+ <true/>
151
+ <key>Info.plist</key>
152
+ <dict>
153
+ <key>omit</key>
154
+ <true/>
155
+ <key>weight</key>
156
+ <real>10</real>
157
+ </dict>
158
+ <key>ResourceRules.plist</key>
159
+ <dict>
160
+ <key>omit</key>
161
+ <true/>
162
+ <key>weight</key>
163
+ <real>100</real>
164
+ </dict>
165
+ </dict>
166
+ <key>rules2</key>
167
+ <dict>
168
+ <key>.*</key>
169
+ <true/>
170
+ <key>Info.plist</key>
171
+ <dict>
172
+ <key>omit</key>
173
+ <true/>
174
+ <key>weight</key>
175
+ <real>10</real>
176
+ </dict>
177
+ <key>ResourceRules.plist</key>
178
+ <dict>
179
+ <key>omit</key>
180
+ <true/>
181
+ <key>weight</key>
182
+ <real>100</real>
183
+ </dict>
184
+ <key>^(Frameworks|SharedFrameworks|Plugins|Plug-ins|XPCServices|Helpers|MacOS)/</key>
185
+ <dict>
186
+ <key>nested</key>
187
+ <true/>
188
+ <key>weight</key>
189
+ <real>0.0</real>
190
+ </dict>
191
+ <key>^[^/]+$</key>
192
+ <dict>
193
+ <key>top</key>
194
+ <true/>
195
+ <key>weight</key>
196
+ <real>0.0</real>
197
+ </dict>
198
+ </dict>
199
+ </dict>
200
+ </plist>
@@ -0,0 +1,156 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ extern "C" {
4
+ void ruby_sysinit(int *, char ***);
5
+ void ruby_init(void);
6
+ void ruby_init_loadpath(void);
7
+ void ruby_script(const char *);
8
+ void ruby_set_argv(int, char **);
9
+ void rb_vm_init_compiler(void);
10
+ void rb_vm_init_jit(void);
11
+ void rb_vm_aot_feature_provide(const char *, void *);
12
+ void *rb_vm_top_self(void);
13
+ void rb_define_global_const(const char *, void *);
14
+ void rb_rb2oc_exc_handler(void);
15
+ void rb_exit(int);
16
+ void MREP_80C61027F5A34B54879CAA9D59A75249(void *, void *);
17
+ void MREP_E259AF1ABE18446BA8FA6AE8BDDF4557(void *, void *);
18
+ void MREP_FC228FC0FEC14326B2C25F48DDCDC99C(void *, void *);
19
+ void MREP_5216B279F7934718A05B01D112B3D790(void *, void *);
20
+ void MREP_32083E13B3D540F8A93504261F49F6BB(void *, void *);
21
+ void MREP_A62E04C32F9242E5A0890298F7272BE2(void *, void *);
22
+ void MREP_2A1C65377EC54C2E94533697A6176471(void *, void *);
23
+ void MREP_CB6BC49A315B43B8B65EDC29EF734F8D(void *, void *);
24
+ void MREP_CBA7D863F55D49308AC1FF723235255A(void *, void *);
25
+ void MREP_1E1F8BFADBF14940952CB6A1438DDADB(void *, void *);
26
+ void MREP_53D9B079836B4FC3AD8F263C4AAD9570(void *, void *);
27
+ void MREP_608D2DD4B81C4C17B59AA1F75B46CC4E(void *, void *);
28
+ void MREP_74EAF306DFE84387BB7709C5CE7DE6CB(void *, void *);
29
+ void MREP_5DFFB185D0D54BAEA17D05232ECF95FE(void *, void *);
30
+ void MREP_00F29E08BD3940C08FCC448F0A218842(void *, void *);
31
+ void MREP_A0105A529CC24AA4A8D1D29D323CC94C(void *, void *);
32
+ void MREP_CC925D7025B140B59A049D6A78A65C8D(void *, void *);
33
+ void MREP_73D5FDC9D9994A1A9692D16DBB493943(void *, void *);
34
+ void MREP_629E0333A05E4FEDBDBC10FF87589DAC(void *, void *);
35
+ void MREP_D07DBFCDD57043EDB456C9299868D947(void *, void *);
36
+ void MREP_E295803625F14149B043F63EBAFE5918(void *, void *);
37
+ void MREP_03CE6DBBCAB34DEDB151B9B8E55BA830(void *, void *);
38
+ void MREP_31BA8AF1BB8346D6A34EF42C6E980CF6(void *, void *);
39
+ void MREP_FFBC21579089418E90CBA6B6A409E401(void *, void *);
40
+ void MREP_E64D2B59A1A244D5B67195765D28FA30(void *, void *);
41
+ void MREP_D131841DB7AC417E8BF70762E60320EC(void *, void *);
42
+ void MREP_A605729BAE564205A08085794A083C6F(void *, void *);
43
+ void MREP_AF695433F5944C3B80860D5D04EB112F(void *, void *);
44
+ void MREP_75084AC7FC8F454FAA33BE70C0046A58(void *, void *);
45
+ void MREP_9801A63F715B4E94AE5D6DFC93A7622A(void *, void *);
46
+ void MREP_E3A0D68C35B54E39A2084EF53C0F40C4(void *, void *);
47
+ void MREP_D7A79515ECD346638CE5E3D9EE25D9D5(void *, void *);
48
+ void MREP_B3A31B4D71AB44E7B8069F991FA3F559(void *, void *);
49
+ void MREP_80479813579944699AD95AD764DDD12D(void *, void *);
50
+ void MREP_9DC5DC53CD3145DE869C044F83F4A2EE(void *, void *);
51
+ void MREP_D829CCE1DC4A417CA68F80B1498C233B(void *, void *);
52
+ void MREP_D70CFCAB2D2B4092A9A8AC69F1D0365A(void *, void *);
53
+ void MREP_EDF827947066473F9A9EC118661644B3(void *, void *);
54
+ void MREP_17DABB4F3D904C4AB430C06E1BE21161(void *, void *);
55
+ void MREP_52999C4C38EE41F886383FF7BE1455C9(void *, void *);
56
+ void MREP_344F4A3616454AA2A314D949022275D5(void *, void *);
57
+ void MREP_2518640E5DE747C3B348897D9B6507FA(void *, void *);
58
+ void MREP_6B2EAAE62B8346DDB9812826756C3EEC(void *, void *);
59
+ void MREP_C812B6EFF12C4D8CB1F2D9286D6770B7(void *, void *);
60
+ void MREP_6725DD468AAB4781B7EAFC1C244B7EB0(void *, void *);
61
+ void MREP_50423CD8F2034420993EA1942D715AD3(void *, void *);
62
+ void MREP_24E9E12BCF05497E8993D42590EDD49A(void *, void *);
63
+ void MREP_C77BF74F7E8340AB940C57DE145A39BB(void *, void *);
64
+ void MREP_88EF6D9E9C914733996CBA5CA5D20D8E(void *, void *);
65
+ void MREP_6FC29234BD64446DB51E253A5746DB12(void *, void *);
66
+ void MREP_16CED2667E004D2A925D66211F033A8E(void *, void *);
67
+ void MREP_0C1823238A1747728F278F09A1E1F87C(void *, void *);
68
+ void MREP_4884E1D68C6F4CE4A7E3A557042A477E(void *, void *);
69
+ void MREP_72F4D92AD69343B495E09FDD0804073F(void *, void *);
70
+ void MREP_CFC1377417294EE69C16C2883397DB35(void *, void *);
71
+ void MREP_466B641CACEE4B95A91E1CFA8B52DA4A(void *, void *);
72
+ }
73
+
74
+ extern "C"
75
+ void
76
+ RubyMotionInit(int argc, char **argv)
77
+ {
78
+ static bool initialized = false;
79
+ if (!initialized) {
80
+ ruby_init();
81
+ ruby_init_loadpath();
82
+ if (argc > 0) {
83
+ const char *progname = argv[0];
84
+ ruby_script(progname);
85
+ }
86
+ #if !__LP64__
87
+ try {
88
+ #endif
89
+ void *self = rb_vm_top_self();
90
+ rb_define_global_const("RUBYMOTION_ENV", @"release");
91
+ rb_define_global_const("RUBYMOTION_VERSION", @"3.5");
92
+ MREP_80C61027F5A34B54879CAA9D59A75249(self, 0);
93
+ MREP_E259AF1ABE18446BA8FA6AE8BDDF4557(self, 0);
94
+ MREP_FC228FC0FEC14326B2C25F48DDCDC99C(self, 0);
95
+ MREP_5216B279F7934718A05B01D112B3D790(self, 0);
96
+ MREP_32083E13B3D540F8A93504261F49F6BB(self, 0);
97
+ MREP_A62E04C32F9242E5A0890298F7272BE2(self, 0);
98
+ MREP_2A1C65377EC54C2E94533697A6176471(self, 0);
99
+ MREP_CB6BC49A315B43B8B65EDC29EF734F8D(self, 0);
100
+ MREP_CBA7D863F55D49308AC1FF723235255A(self, 0);
101
+ MREP_1E1F8BFADBF14940952CB6A1438DDADB(self, 0);
102
+ MREP_53D9B079836B4FC3AD8F263C4AAD9570(self, 0);
103
+ MREP_608D2DD4B81C4C17B59AA1F75B46CC4E(self, 0);
104
+ MREP_74EAF306DFE84387BB7709C5CE7DE6CB(self, 0);
105
+ MREP_5DFFB185D0D54BAEA17D05232ECF95FE(self, 0);
106
+ MREP_00F29E08BD3940C08FCC448F0A218842(self, 0);
107
+ MREP_A0105A529CC24AA4A8D1D29D323CC94C(self, 0);
108
+ MREP_CC925D7025B140B59A049D6A78A65C8D(self, 0);
109
+ MREP_73D5FDC9D9994A1A9692D16DBB493943(self, 0);
110
+ MREP_629E0333A05E4FEDBDBC10FF87589DAC(self, 0);
111
+ MREP_D07DBFCDD57043EDB456C9299868D947(self, 0);
112
+ MREP_E295803625F14149B043F63EBAFE5918(self, 0);
113
+ MREP_03CE6DBBCAB34DEDB151B9B8E55BA830(self, 0);
114
+ MREP_31BA8AF1BB8346D6A34EF42C6E980CF6(self, 0);
115
+ MREP_FFBC21579089418E90CBA6B6A409E401(self, 0);
116
+ MREP_E64D2B59A1A244D5B67195765D28FA30(self, 0);
117
+ MREP_D131841DB7AC417E8BF70762E60320EC(self, 0);
118
+ MREP_A605729BAE564205A08085794A083C6F(self, 0);
119
+ MREP_AF695433F5944C3B80860D5D04EB112F(self, 0);
120
+ MREP_75084AC7FC8F454FAA33BE70C0046A58(self, 0);
121
+ MREP_9801A63F715B4E94AE5D6DFC93A7622A(self, 0);
122
+ MREP_E3A0D68C35B54E39A2084EF53C0F40C4(self, 0);
123
+ MREP_D7A79515ECD346638CE5E3D9EE25D9D5(self, 0);
124
+ MREP_B3A31B4D71AB44E7B8069F991FA3F559(self, 0);
125
+ MREP_80479813579944699AD95AD764DDD12D(self, 0);
126
+ MREP_9DC5DC53CD3145DE869C044F83F4A2EE(self, 0);
127
+ MREP_D829CCE1DC4A417CA68F80B1498C233B(self, 0);
128
+ MREP_D70CFCAB2D2B4092A9A8AC69F1D0365A(self, 0);
129
+ MREP_EDF827947066473F9A9EC118661644B3(self, 0);
130
+ MREP_17DABB4F3D904C4AB430C06E1BE21161(self, 0);
131
+ MREP_52999C4C38EE41F886383FF7BE1455C9(self, 0);
132
+ MREP_344F4A3616454AA2A314D949022275D5(self, 0);
133
+ MREP_2518640E5DE747C3B348897D9B6507FA(self, 0);
134
+ MREP_6B2EAAE62B8346DDB9812826756C3EEC(self, 0);
135
+ MREP_C812B6EFF12C4D8CB1F2D9286D6770B7(self, 0);
136
+ MREP_6725DD468AAB4781B7EAFC1C244B7EB0(self, 0);
137
+ MREP_50423CD8F2034420993EA1942D715AD3(self, 0);
138
+ MREP_24E9E12BCF05497E8993D42590EDD49A(self, 0);
139
+ MREP_C77BF74F7E8340AB940C57DE145A39BB(self, 0);
140
+ MREP_88EF6D9E9C914733996CBA5CA5D20D8E(self, 0);
141
+ MREP_6FC29234BD64446DB51E253A5746DB12(self, 0);
142
+ MREP_16CED2667E004D2A925D66211F033A8E(self, 0);
143
+ MREP_0C1823238A1747728F278F09A1E1F87C(self, 0);
144
+ MREP_4884E1D68C6F4CE4A7E3A557042A477E(self, 0);
145
+ MREP_72F4D92AD69343B495E09FDD0804073F(self, 0);
146
+ MREP_CFC1377417294EE69C16C2883397DB35(self, 0);
147
+ MREP_466B641CACEE4B95A91E1CFA8B52DA4A(self, 0);
148
+ #if !__LP64__
149
+ }
150
+ catch (...) {
151
+ rb_rb2oc_exc_handler();
152
+ }
153
+ #endif
154
+ initialized = true;
155
+ }
156
+ }
@@ -0,0 +1,19 @@
1
+ #import <UIKit/UIKit.h>
2
+
3
+ extern "C" {
4
+ void rb_define_global_const(const char *, void *);
5
+ void rb_rb2oc_exc_handler(void);
6
+ void rb_exit(int);
7
+ void RubyMotionInit(int argc, char **argv);
8
+ }
9
+ int
10
+ main(int argc, char **argv)
11
+ {
12
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
13
+ int retval = 0;
14
+ RubyMotionInit(argc, argv);
15
+ retval = UIApplicationMain(argc, argv, nil, @"AppDelegate");
16
+ rb_exit(retval);
17
+ [pool release];
18
+ return retval;
19
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ios3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Gertig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-17 00:00:00.000000000 Z
11
+ date: 2015-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: 2.0.24
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: '1.8'
26
+ version: 2.0.24
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: commander
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: CFPropertyList
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.3.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.3.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,12 +66,12 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '1.6'
55
- description: This tool is focused primarily on apps that have been archived using
69
+ description: This utility is focused primarily on apps that have been archived using
56
70
  RubyMotion.
57
71
  email:
58
72
  - "@gertig"
59
73
  executables:
60
- - sthree
74
+ - ios3
61
75
  extensions: []
62
76
  extra_rdoc_files: []
63
77
  files:
@@ -66,7 +80,7 @@ files:
66
80
  - LICENSE.txt
67
81
  - README.md
68
82
  - Rakefile
69
- - bin/sthree
83
+ - bin/ios3
70
84
  - ios3.gemspec
71
85
  - lib/ios3.rb
72
86
  - lib/ios3/cli.rb
@@ -76,6 +90,21 @@ files:
76
90
  - templates/manifest-test.plist
77
91
  - templates/manifest-test.plist.erb
78
92
  - templates/manifest.plist.erb
93
+ - test-data/build/iPhoneOS-8.0-Release/Entitlements.plist
94
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app.dSYM/Contents/Info.plist
95
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app.dSYM/Contents/Resources/DWARF/HWK
96
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/Default-568h@2x.png
97
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/Default-667h@2x.png
98
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/Default-736h@3x.png
99
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/HWK
100
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/Info.plist
101
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/PkgInfo
102
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/ResourceRules.plist
103
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/_CodeSignature/CodeResources
104
+ - test-data/build/iPhoneOS-8.0-Release/HWK.app/embedded.mobileprovision
105
+ - test-data/build/iPhoneOS-8.0-Release/HWK.ipa
106
+ - test-data/build/iPhoneOS-8.0-Release/objs/init.mm
107
+ - test-data/build/iPhoneOS-8.0-Release/objs/main.mm
79
108
  homepage: http://github.com/gertig/ios3
80
109
  licenses:
81
110
  - MIT