motion-cocoapods 1.3.7 → 1.4.0
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 +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.
|