motion-cocoapods 1.3.7 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +131 -0
- data/lib/motion/project/cocoapods.rb +95 -76
- data/lib/motion/project/version.rb +3 -3
- metadata +8 -7
- data/README.rdoc +0 -98
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b763eae72ff22dc16f112c56c334712927a268c2
|
4
|
+
data.tar.gz: d33fb42510b1aabd3ee3898121d8872833d58603
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 523db5f80d68402f1a7109ad58ada92d4faf3fd37a478c16e19fc5e752cfeb64b406cd4344c402ce67c9972a6c9b5f8ecc8ea9b8750db815523e4a697cd99a82
|
7
|
+
data.tar.gz: 2f5037a251bc4d2072baced390d552755a3cca1e42f414ae0c294a84ef2f0cccc1812029f3ff07a640d7ee0ae71fba6f3a4a9158fc548680049cd58fa6c88ca5
|
data/LICENSE
CHANGED
data/README.md
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
# motion-cocoapods
|
2
|
+
|
3
|
+
motion-cocoapods allows RubyMotion projects to integrate with the
|
4
|
+
[CocoaPods](http://cocoapods.org) dependency manager.
|
5
|
+
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
```
|
10
|
+
$ [sudo] gem install motion-cocoapods
|
11
|
+
```
|
12
|
+
|
13
|
+
Or if you use Bundler:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
gem 'motion-cocoapods', '~> 1.4.0'
|
17
|
+
```
|
18
|
+
|
19
|
+
|
20
|
+
## Setup
|
21
|
+
|
22
|
+
1. Edit the `Rakefile` of your RubyMotion project and add the following require
|
23
|
+
line:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
require 'rubygems'
|
27
|
+
require 'motion-cocoapods'
|
28
|
+
```
|
29
|
+
|
30
|
+
2. Still in the `Rakefile`, set your dependencies using the same language as
|
31
|
+
you would do in [Podfiles](http://docs.cocoapods.org/podfile.html).
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
Motion::Project::App.setup do |app|
|
35
|
+
# ...
|
36
|
+
app.pods do
|
37
|
+
pod 'AFNetworking'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
3. If this is the first time using CocoaPods on your machine, you'll need to
|
43
|
+
let CocoaPods do some setup work with the following command:
|
44
|
+
|
45
|
+
```
|
46
|
+
$ [bundle exec] pod setup
|
47
|
+
```
|
48
|
+
|
49
|
+
|
50
|
+
## Tasks
|
51
|
+
|
52
|
+
To tell motion-cocoapods to download your dependencies, run the following rake
|
53
|
+
task:
|
54
|
+
|
55
|
+
```
|
56
|
+
$ rake pod:install
|
57
|
+
```
|
58
|
+
|
59
|
+
That’s all. The build system will properly download the given pods and their
|
60
|
+
dependencies. On the next build of your application it will pod the pods and
|
61
|
+
link them to your application executable.
|
62
|
+
|
63
|
+
If the `vendor/Podfile.lock` file exists, this will be used to install specific
|
64
|
+
versions. To update the versions, use the following rake task:
|
65
|
+
|
66
|
+
```
|
67
|
+
$ rake pod:update
|
68
|
+
```
|
69
|
+
|
70
|
+
## Options
|
71
|
+
|
72
|
+
By default the output of CocoaPods doing its work is silenced. If, however, you
|
73
|
+
would like to see the output, you can set the `COCOAPODS_VERBOSE` env variable:
|
74
|
+
|
75
|
+
```
|
76
|
+
$ rake pod:install COCOAPODS_VERBOSE=1
|
77
|
+
```
|
78
|
+
|
79
|
+
As part of the install and update tasks, the specification repostories will get
|
80
|
+
updated. You can disable this with the `COCOAPODS_NO_REPO_UPDATE` env variable:
|
81
|
+
|
82
|
+
```
|
83
|
+
$ rake pod:install COCOAPODS_NO_REPO_UPDATE=1
|
84
|
+
```
|
85
|
+
|
86
|
+
|
87
|
+
## Contribute
|
88
|
+
|
89
|
+
1. Setup a local development environment.
|
90
|
+
|
91
|
+
```
|
92
|
+
$ git clone git://github.com/HipByte/motion-cocoapods.git
|
93
|
+
$ cd motion-cocoapods
|
94
|
+
$ rake bootstrap
|
95
|
+
```
|
96
|
+
|
97
|
+
2. Verify that all the tests are passing.
|
98
|
+
|
99
|
+
```
|
100
|
+
$ rake spec
|
101
|
+
```
|
102
|
+
|
103
|
+
3. Create your patch and send a
|
104
|
+
[pull-request](http://help.github.com/send-pull-requests/).
|
105
|
+
|
106
|
+
|
107
|
+
## License
|
108
|
+
|
109
|
+
Copyright (c) 2012-2013, Laurent Sansonetti <lrz@hipbyte.com>
|
110
|
+
All rights reserved.
|
111
|
+
|
112
|
+
Redistribution and use in source and binary forms, with or without
|
113
|
+
modification, are permitted provided that the following conditions are met:
|
114
|
+
|
115
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
116
|
+
list of conditions and the following disclaimer.
|
117
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
118
|
+
this list of conditions and the following disclaimer in the documentation
|
119
|
+
and/or other materials provided with the distribution.
|
120
|
+
|
121
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
122
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
123
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
124
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
125
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
126
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
127
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
128
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
129
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
130
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
131
|
+
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2012, Laurent Sansonetti <lrz@hipbyte.com>
|
1
|
+
# Copyright (c) 2012-2013, Laurent Sansonetti <lrz@hipbyte.com>
|
2
2
|
# All rights reserved.
|
3
3
|
#
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
@@ -46,23 +46,10 @@ module Motion::Project
|
|
46
46
|
class App
|
47
47
|
class << self
|
48
48
|
def build_with_cocoapods(platform, opts = {})
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
cp_config = Pod::Config.instance
|
53
|
-
analyzer = Pod::Installer::Analyzer.new(cp_config.sandbox, pods.podfile, cp_config.lockfile)
|
54
|
-
begin
|
55
|
-
need_install = analyzer.needs_install?
|
56
|
-
rescue
|
57
|
-
need_install = true
|
58
|
-
end
|
59
|
-
if ENV['COCOCAPODS_UPDATE']
|
60
|
-
pods.install!(true)
|
61
|
-
else
|
62
|
-
pods.install! if need_install
|
49
|
+
unless File.exist?(CocoaPods::PODS_ROOT)
|
50
|
+
$stderr.puts "[!] No CocoaPods dependencies found in #{CocoaPods::PODS_ROOT}, run the `rake pod:install` task."
|
51
|
+
exit 1
|
63
52
|
end
|
64
|
-
pods.link_project
|
65
|
-
|
66
53
|
build_without_cocoapods(platform, opts)
|
67
54
|
end
|
68
55
|
|
@@ -84,16 +71,51 @@ module Motion::Project
|
|
84
71
|
@podfile = Pod::Podfile.new {}
|
85
72
|
@podfile.platform((App.respond_to?(:template) ? App.template : :ios), config.deployment_target)
|
86
73
|
cp_config.podfile = @podfile
|
87
|
-
|
88
|
-
cp_config.
|
89
|
-
if ENV['COCOAPODS_VERBOSE']
|
90
|
-
cp_config.verbose = true
|
91
|
-
else
|
92
|
-
cp_config.silent = true
|
93
|
-
end
|
94
|
-
|
74
|
+
cp_config.skip_repo_update = true
|
75
|
+
cp_config.verbose = !!ENV['COCOAPODS_VERBOSE']
|
95
76
|
cp_config.integrate_targets = false
|
96
77
|
cp_config.installation_root = Pathname.new(File.expand_path(config.project_dir)) + 'vendor'
|
78
|
+
|
79
|
+
configure_project
|
80
|
+
end
|
81
|
+
|
82
|
+
# Adds the Pods project to the RubyMotion config as a vendored project and
|
83
|
+
#
|
84
|
+
def configure_project
|
85
|
+
@config.vendor_project(PODS_ROOT, :xcode,
|
86
|
+
:target => 'Pods',
|
87
|
+
:headers_dir => 'Headers',
|
88
|
+
:products => %w{ libPods.a }
|
89
|
+
)
|
90
|
+
|
91
|
+
@config.resources_dirs << resources_dir.to_s
|
92
|
+
|
93
|
+
# TODO replace this all once Xcodeproj has the proper xcconfig parser.
|
94
|
+
if (xcconfig = self.pods_xcconfig) && ldflags = xcconfig.to_hash['OTHER_LDFLAGS']
|
95
|
+
lib_search_paths = xcconfig.to_hash['LIBRARY_SEARCH_PATHS'] || ""
|
96
|
+
lib_search_paths.gsub!('$(PODS_ROOT)', "-L#{@config.project_dir}/#{PODS_ROOT}")
|
97
|
+
|
98
|
+
framework_search_paths = xcconfig.to_hash['FRAMEWORK_SEARCH_PATHS']
|
99
|
+
if framework_search_paths
|
100
|
+
framework_search_paths.scan(/\"([^\"]+)\"/) do |search_path|
|
101
|
+
path = search_path.first.gsub!(/(\$\(PODS_ROOT\))|(\$\{PODS_ROOT\})/, "#{@config.project_dir}/#{PODS_ROOT}")
|
102
|
+
@config.framework_search_paths << path if path
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
@config.frameworks.concat(ldflags.scan(/-framework\s+([^\s]+)/).map { |m| m[0] })
|
107
|
+
@config.frameworks.uniq!
|
108
|
+
@config.libs.concat(ldflags.scan(/-l([^\s]+)/).map { |m|
|
109
|
+
if lib_search_paths.length == 0 || File.exist?("/usr/lib/lib#{m[0]}.dylib")
|
110
|
+
"/usr/lib/lib#{m[0]}.dylib"
|
111
|
+
else
|
112
|
+
"#{lib_search_paths} -ObjC -l#{m[0]}"
|
113
|
+
end
|
114
|
+
})
|
115
|
+
@config.weak_frameworks.concat(ldflags.scan(/-weak_framework\s+([^\s]+)/).map { |m| m[0] })
|
116
|
+
@config.weak_frameworks.uniq!
|
117
|
+
@config.libs.uniq!
|
118
|
+
end
|
97
119
|
end
|
98
120
|
|
99
121
|
# DSL
|
@@ -112,7 +134,7 @@ module Motion::Project
|
|
112
134
|
@podfile.post_install(&block)
|
113
135
|
end
|
114
136
|
|
115
|
-
# Installation
|
137
|
+
# Installation
|
116
138
|
#-------------------------------------------------------------------------#
|
117
139
|
|
118
140
|
def pods_installer
|
@@ -127,68 +149,32 @@ module Motion::Project
|
|
127
149
|
# Let RubyMotion re-generate the BridgeSupport file whenever the list of
|
128
150
|
# installed pods changes.
|
129
151
|
#
|
130
|
-
def install!(update
|
152
|
+
def install!(update)
|
131
153
|
pods_installer.update_mode = update
|
132
154
|
pods_installer.install!
|
133
155
|
if bridgesupport_file.exist? && !pods_installer.installed_specs.empty?
|
134
156
|
bridgesupport_file.delete
|
135
157
|
end
|
136
|
-
end
|
137
158
|
|
138
|
-
# Adds the Pods project to the RubyMotion config as a vendored project.
|
139
|
-
#
|
140
|
-
def link_project
|
141
159
|
install_resources
|
142
|
-
|
143
|
-
|
144
|
-
@config.vendor_project(PODS_ROOT, :xcode,
|
145
|
-
:target => 'Pods',
|
146
|
-
:headers_dir => 'Headers',
|
147
|
-
:products => %w{ libPods.a }
|
148
|
-
)
|
149
|
-
|
150
|
-
if ldflags = pods_xcconfig.to_hash['OTHER_LDFLAGS']
|
151
|
-
lib_search_paths = pods_xcconfig.to_hash['LIBRARY_SEARCH_PATHS'] || ""
|
152
|
-
lib_search_paths.gsub!('$(PODS_ROOT)', "-L#{@config.project_dir}/#{PODS_ROOT}")
|
153
|
-
|
154
|
-
framework_search_paths = pods_xcconfig.to_hash['FRAMEWORK_SEARCH_PATHS']
|
155
|
-
if framework_search_paths
|
156
|
-
framework_search_paths.scan(/\"([^\"]+)\"/) do |search_path|
|
157
|
-
path = search_path.first.gsub!(/(\$\(PODS_ROOT\))|(\$\{PODS_ROOT\})/, "#{@config.project_dir}/#{PODS_ROOT}")
|
158
|
-
@config.framework_search_paths << path if path
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
@config.frameworks.concat(ldflags.scan(/-framework\s+([^\s]+)/).map { |m| m[0] })
|
163
|
-
@config.frameworks.uniq!
|
164
|
-
@config.libs.concat(ldflags.scan(/-l([^\s]+)/).map { |m|
|
165
|
-
if lib_search_paths.length == 0 || File.exist?("/usr/lib/lib#{m[0]}.dylib")
|
166
|
-
"/usr/lib/lib#{m[0]}.dylib"
|
167
|
-
else
|
168
|
-
"#{lib_search_paths} -all_load -l#{m[0]}"
|
169
|
-
end
|
170
|
-
})
|
171
|
-
@config.weak_frameworks.concat(ldflags.scan(/-weak_framework\s+([^\s]+)/).map { |m| m[0] })
|
172
|
-
@config.weak_frameworks.uniq!
|
173
|
-
@config.libs.uniq!
|
174
|
-
end
|
160
|
+
copy_cocoapods_env_and_prefix_headers
|
175
161
|
end
|
176
162
|
|
163
|
+
# TODO this probably breaks in cases like resource bundles etc, need to test.
|
177
164
|
def install_resources
|
178
165
|
FileUtils.mkdir_p(resources_dir)
|
179
166
|
resources.each do |file|
|
180
167
|
begin
|
181
|
-
FileUtils.cp_r file, resources_dir
|
168
|
+
FileUtils.cp_r file, resources_dir if file.exist?
|
182
169
|
rescue ArgumentError => exc
|
183
170
|
unless exc.message =~ /same file/
|
184
171
|
raise
|
185
172
|
end
|
186
173
|
end
|
187
174
|
end
|
188
|
-
@config.resources_dirs << resources_dir.to_s
|
189
175
|
end
|
190
176
|
|
191
|
-
def
|
177
|
+
def copy_cocoapods_env_and_prefix_headers
|
192
178
|
headers = Dir.glob(["#{PODS_ROOT}/*.h", "#{PODS_ROOT}/*.pch"])
|
193
179
|
headers.each do |header|
|
194
180
|
src = File.basename(header)
|
@@ -206,13 +192,18 @@ module Motion::Project
|
|
206
192
|
Pod::Config.instance
|
207
193
|
end
|
208
194
|
|
195
|
+
def analyzer
|
196
|
+
cp_config = Pod::Config.instance
|
197
|
+
Pod::Installer::Analyzer.new(cp_config.sandbox, @podfile, cp_config.lockfile)
|
198
|
+
end
|
199
|
+
|
209
200
|
def bridgesupport_file
|
210
201
|
Pathname.new(@config.project_dir) + PODS_ROOT + 'Pods.bridgesupport'
|
211
202
|
end
|
212
203
|
|
213
204
|
def pods_xcconfig
|
214
205
|
path = Pathname.new(@config.project_dir) + PODS_ROOT + 'Pods.xcconfig'
|
215
|
-
Xcodeproj::Config.new(path)
|
206
|
+
Xcodeproj::Config.new(path) if path.exist?
|
216
207
|
end
|
217
208
|
|
218
209
|
def resources
|
@@ -221,6 +212,7 @@ module Motion::Project
|
|
221
212
|
f.each_line do |line|
|
222
213
|
if matched = line.match(/install_resource\s+(.*)/)
|
223
214
|
path = (matched[1].strip)[1..-2]
|
215
|
+
path.sub!("${BUILD_DIR}/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}", ".build")
|
224
216
|
resources << Pathname.new(@config.project_dir) + PODS_ROOT + path
|
225
217
|
end
|
226
218
|
end
|
@@ -231,17 +223,44 @@ module Motion::Project
|
|
231
223
|
def resources_dir
|
232
224
|
Pathname.new(@config.project_dir) + PODS_ROOT + 'Resources'
|
233
225
|
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
namespace :pod do
|
230
|
+
task :update_spec_repos do
|
231
|
+
if ENV['COCOCAPODS_NO_UPDATE']
|
232
|
+
$stderr.puts '[!] The COCOCAPODS_NO_UPDATE env variable has been deprecated, use COCOAPODS_NO_REPO_UPDATE instead.'
|
233
|
+
ENV['COCOAPODS_NO_REPO_UPDATE'] = '1'
|
234
|
+
end
|
235
|
+
Pod::SourcesManager.update(nil, true) unless ENV['COCOAPODS_NO_REPO_UPDATE']
|
236
|
+
end
|
234
237
|
|
235
|
-
|
236
|
-
|
238
|
+
desc "Download and integrate newly added pods"
|
239
|
+
task :install => :update_spec_repos do
|
240
|
+
pods = App.config.pods
|
241
|
+
begin
|
242
|
+
need_install = pods.analyzer.needs_install?
|
243
|
+
rescue
|
244
|
+
# TODO fix this, see https://github.com/HipByte/motion-cocoapods/issues/57#issuecomment-17810809
|
245
|
+
need_install = true
|
237
246
|
end
|
247
|
+
pods.install!(false) if need_install
|
248
|
+
end
|
249
|
+
|
250
|
+
desc "Update outdated pods"
|
251
|
+
task :update => :update_spec_repos do
|
252
|
+
pods = App.config.pods
|
253
|
+
pods.install!(true)
|
238
254
|
end
|
239
255
|
end
|
240
256
|
|
241
|
-
namespace :
|
242
|
-
|
243
|
-
task :
|
244
|
-
|
245
|
-
|
257
|
+
namespace :clean do
|
258
|
+
# This gets appended to the already existing clean:all task.
|
259
|
+
task :all do
|
260
|
+
dir = Motion::Project::CocoaPods::PODS_ROOT
|
261
|
+
if File.exist?(dir)
|
262
|
+
App.info 'Delete', dir
|
263
|
+
rm_rf dir
|
264
|
+
end
|
246
265
|
end
|
247
|
-
end
|
266
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2012, Laurent Sansonetti <lrz@hipbyte.com>
|
1
|
+
# Copyright (c) 2012-2013, Laurent Sansonetti <lrz@hipbyte.com>
|
2
2
|
# All rights reserved.
|
3
3
|
#
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
@@ -24,6 +24,6 @@
|
|
24
24
|
|
25
25
|
module Motion::Project
|
26
26
|
class CocoaPods
|
27
|
-
VERSION
|
27
|
+
VERSION = '1.4.0'
|
28
28
|
end
|
29
|
-
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-cocoapods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent Sansonetti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.26.2
|
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: 0.
|
26
|
+
version: 0.26.2
|
27
27
|
description: motion-cocoapods allows RubyMotion projects to have access to the CocoaPods
|
28
28
|
dependency manager.
|
29
29
|
email: lrz@hipbyte.com
|
@@ -34,10 +34,11 @@ files:
|
|
34
34
|
- lib/motion/project/cocoapods.rb
|
35
35
|
- lib/motion/project/version.rb
|
36
36
|
- lib/motion-cocoapods.rb
|
37
|
-
- README.
|
37
|
+
- README.md
|
38
38
|
- LICENSE
|
39
39
|
homepage: http://www.rubymotion.com
|
40
|
-
licenses:
|
40
|
+
licenses:
|
41
|
+
- MIT
|
41
42
|
metadata: {}
|
42
43
|
post_install_message:
|
43
44
|
rdoc_options: []
|
@@ -55,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
56
|
version: '0'
|
56
57
|
requirements: []
|
57
58
|
rubyforge_project:
|
58
|
-
rubygems_version: 2.
|
59
|
+
rubygems_version: 2.0.3
|
59
60
|
signing_key:
|
60
61
|
specification_version: 4
|
61
62
|
summary: CocoaPods integration for RubyMotion projects
|
data/README.rdoc
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
= motion-cocoapods
|
2
|
-
|
3
|
-
motion-cocoapods allows RubyMotion projects to integrate with the CocoaPods
|
4
|
-
dependency manager.
|
5
|
-
|
6
|
-
|
7
|
-
== Requirements
|
8
|
-
|
9
|
-
* CocoaPods (see http://cocoapods.org).
|
10
|
-
|
11
|
-
* RubyMotion 1.0 or greater (see http://www.rubymotion.com).
|
12
|
-
|
13
|
-
|
14
|
-
== Installation
|
15
|
-
|
16
|
-
$ sudo gem install motion-cocoapods
|
17
|
-
|
18
|
-
|
19
|
-
== Setup
|
20
|
-
|
21
|
-
1. Edit the +Rakefile+ of your RubyMotion project and add the following require
|
22
|
-
line.
|
23
|
-
|
24
|
-
require 'rubygems'
|
25
|
-
require 'motion-cocoapods'
|
26
|
-
|
27
|
-
2. Still in the +Rakefile+, set your dependencies using the same language as
|
28
|
-
you would do in Podfiles.
|
29
|
-
|
30
|
-
Motion::Project::App.setup do |app|
|
31
|
-
# ...
|
32
|
-
app.pods do
|
33
|
-
pod 'JSONKit'
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
That's all. The build system will properly download the given pods and their
|
38
|
-
dependencies, build them and link them to your application executable.
|
39
|
-
|
40
|
-
|
41
|
-
== Options
|
42
|
-
|
43
|
-
If a Podfile.lock file exists, this will be used to install specific versions.
|
44
|
-
To update the versions, you can set the +COCOCAPODS_UPDATE+ env variable.
|
45
|
-
|
46
|
-
$ rake COCOCAPODS_UPDATE=1
|
47
|
-
|
48
|
-
By default the output of CocoaPods doing its work is silenced. If, however, you
|
49
|
-
would like to see the output, you can set the +COCOAPODS_VERBOSE+ env variable.
|
50
|
-
|
51
|
-
$ rake COCOAPODS_VERBOSE=1
|
52
|
-
|
53
|
-
On every build, CocoaPods will try to update the specification repos in
|
54
|
-
+~/.cocoapods+, if you want to skip this then set the +COCOAPODS_NO_UPDATE+ env
|
55
|
-
variable.
|
56
|
-
|
57
|
-
$ rake COCOAPODS_NO_UPDATE=1
|
58
|
-
|
59
|
-
|
60
|
-
== Contribute
|
61
|
-
|
62
|
-
1. Setup a local development environment.
|
63
|
-
|
64
|
-
$ git clone git://github.com/HipByte/motion-cocoapods.git
|
65
|
-
$ cd motion-cocoapods
|
66
|
-
$ rake bootstrap
|
67
|
-
|
68
|
-
2. Verify that all the tests are passing.
|
69
|
-
|
70
|
-
$ rake spec
|
71
|
-
|
72
|
-
3. Create your patch and send a pull-request[http://help.github.com/send-pull-requests/].
|
73
|
-
|
74
|
-
|
75
|
-
== License
|
76
|
-
|
77
|
-
Copyright (c) 2012, Laurent Sansonetti <lrz@hipbyte.com>
|
78
|
-
All rights reserved.
|
79
|
-
|
80
|
-
Redistribution and use in source and binary forms, with or without
|
81
|
-
modification, are permitted provided that the following conditions are met:
|
82
|
-
|
83
|
-
1. Redistributions of source code must retain the above copyright notice, this
|
84
|
-
list of conditions and the following disclaimer.
|
85
|
-
2. Redistributions in binary form must reproduce the above copyright notice,
|
86
|
-
this list of conditions and the following disclaimer in the documentation
|
87
|
-
and/or other materials provided with the distribution.
|
88
|
-
|
89
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
90
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
91
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
92
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
93
|
-
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
94
|
-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
95
|
-
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
96
|
-
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
97
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
98
|
-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|