cocoapods 0.16.1 → 0.16.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,31 @@
1
+ ## 0.16.2
2
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.16.1...0.16.2) • [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.4.1...0.4.3)
3
+
4
+ ###### Bug fixes
5
+
6
+ - Quote storyboard and xib paths in ‘copy resource’ script.
7
+ [#740](https://github.com/CocoaPods/CocoaPods/pull/740)
8
+ - Fix use of `podspec` directive in Podfile with no options specified.
9
+ [#768](https://github.com/CocoaPods/CocoaPods/pull/768)
10
+ - Generate Mac OS X Pods target with the specified deployment target.
11
+ [#757](https://github.com/CocoaPods/CocoaPods/issues/757)
12
+ - Disable libSystem objects for ARC libs that target older platforms.
13
+ This applies when the deployment target is set to < iOS 6.0 or OS X 10.8,
14
+ or not specified at all.
15
+ [#352](https://github.com/CocoaPods/Specs/issues/352)
16
+ [#1161](https://github.com/CocoaPods/Specs/pull/1161)
17
+ - Mark header source files as ‘Project’ not ‘Public’.
18
+ [#747](https://github.com/CocoaPods/CocoaPods/issues/747)
19
+ - Add `PBXGroup` as acceptable `PBXFileReference` value.
20
+ [#49](https://github.com/CocoaPods/Xcodeproj/pull/49)
21
+ - Make `xcodeproj show` without further arguments actually work.
22
+ [#45](https://github.com/CocoaPods/Xcodeproj/issues/45)
23
+
24
+ ###### Enhancements
25
+
26
+ - Added support for pre-download over Mercurial.
27
+ [#750](https://github.com/CocoaPods/CocoaPods/pull/750)
28
+
1
29
  ## 0.16.1
2
30
  [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.16.0...0.16.1) • [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.4.0...0.4.1)
3
31
 
data/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  CocoaPods manages library dependencies for your Xcode project.
9
9
 
10
10
  Homepage: [http://cocoapods.org/](http://cocoapods.org/)
11
- Twitter: [@CocoaPodsOrg](http://twitter.com/CocoaPodsOrg)
11
+ Twitter: [@CocoaPods](http://twitter.com/CocoaPods)
12
12
  Mailing List: [http://groups.google.com/group/cocoapods](http://groups.google.com/group/cocoapods)
13
13
 
14
14
  You specify the dependencies for your project in one easy text file. CocoaPods resolves dependencies between libraries, fetches source code for the dependencies, and creates and maintains an Xcode workspace to build your project.
@@ -45,6 +45,8 @@ Or from `Xcode > Settings > Downloads > Components > Command Line Tools`
45
45
 
46
46
  2. CocoaPods re-uses some of the RubyGems classes. If you have a version older than 1.4.0, you will have to update RubyGems: `$ gem update --system`.
47
47
 
48
+ 3. If you use [RVM](https://rvm.io), you might need to create a symbolic link to the LLVM GCC compiler: `$ [sudo] ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2`
49
+
48
50
 
49
51
  ## Adding it to your project
50
52
 
@@ -105,7 +107,7 @@ There are several other ways to start using **any** library without a Pod specif
105
107
 
106
108
  All CocoaPods development happens on GitHub, there is a repository for [CocoaPods](https://github.com/CocoaPods/CocoaPods) and one for the [CocoaPods specs](https://github.com/CocoaPods/Specs). Contributing patches or Pods is really easy and gratifying. You even get push access when one of your specs or patches is accepted.
107
109
 
108
- Follow [@CocoaPodsOrg](http://twitter.com/CocoaPodsOrg) to get up to date information about what's going on in the CocoaPods world.
110
+ Follow [@CocoaPods](http://twitter.com/CocoaPods) to get up to date information about what's going on in the CocoaPods world.
109
111
 
110
112
 
111
113
  # Donations
@@ -12,7 +12,7 @@ unless Gem::Version::Requirement.new('>= 1.4.0').satisfied_by?(Gem::Version.new(
12
12
  end
13
13
 
14
14
  module Pod
15
- VERSION = '0.16.1'
15
+ VERSION = '0.16.2'
16
16
 
17
17
  class PlainInformative < StandardError
18
18
  end
@@ -136,6 +136,8 @@ module Pod
136
136
  return unless name && params
137
137
  if params.key?(:git)
138
138
  GitSource.new(name, params)
139
+ elsif params.key?(:hg)
140
+ MercurialSource.new(name, params)
139
141
  elsif params.key?(:svn)
140
142
  SvnSource.new(name, params)
141
143
  elsif params.key?(:podspec)
@@ -193,7 +195,7 @@ module Pod
193
195
  end
194
196
  end
195
197
 
196
- class GitSource < AbstractExternalSource
198
+ class DownloaderSource < AbstractExternalSource
197
199
  def copy_external_source_into_sandbox(sandbox, platform)
198
200
  UI.info("->".green + " Pre-downloading: '#{name}'") do
199
201
  target = sandbox.root + name
@@ -206,7 +208,9 @@ module Pod
206
208
  end
207
209
  end
208
210
  end
211
+ end
209
212
 
213
+ class GitSource < DownloaderSource
210
214
  def description
211
215
  "from `#{@params[:git]}'".tap do |description|
212
216
  description << ", commit `#{@params[:commit]}'" if @params[:commit]
@@ -216,20 +220,15 @@ module Pod
216
220
  end
217
221
  end
218
222
 
219
- class SvnSource < AbstractExternalSource
220
- def copy_external_source_into_sandbox(sandbox, platform)
221
- UI.info("->".green + " Pre-downloading: '#{name}'") do
222
- target = sandbox.root + name
223
- target.rmtree if target.exist?
224
- downloader = Downloader.for_target(sandbox.root + name, @params)
225
- downloader.download
226
- store_podspec(sandbox, target + "#{name}.podspec")
227
- if local_pod = sandbox.installed_pod_named(name, platform)
228
- local_pod.downloaded = true
229
- end
223
+ class MercurialSource < DownloaderSource
224
+ def description
225
+ "from `#{@params[:hg]}'".tap do |description|
226
+ description << ", revision `#{@params[:revision]}'" if @params[:revision]
230
227
  end
231
228
  end
229
+ end
232
230
 
231
+ class SvnSource < DownloaderSource
233
232
  def description
234
233
  "from `#{@params[:svn]}'".tap do |description|
235
234
  description << ", folder `#{@params[:folder]}'" if @params[:folder]
@@ -8,12 +8,12 @@ install_resource()
8
8
  {
9
9
  case $1 in
10
10
  *\.storyboard)
11
- echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
12
- ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
11
+ echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
12
+ ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
13
13
  ;;
14
14
  *\.xib)
15
- echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
16
- ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
15
+ echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
16
+ ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\"$1\\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
17
17
  ;;
18
18
  *.framework)
19
19
  echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
@@ -116,5 +116,12 @@ module Pod
116
116
  def requires_legacy_ios_archs?
117
117
  (name == :ios) && deployment_target && (deployment_target < Version.new("4.3"))
118
118
  end
119
+
120
+ def deployment_target_setting_name
121
+ case @symbolic_name
122
+ when :ios then 'IPHONEOS_DEPLOYMENT_TARGET'
123
+ when :osx then 'MACOSX_DEPLOYMENT_TARGET'
124
+ end
125
+ end
119
126
  end
120
127
  end
@@ -403,7 +403,7 @@ module Pod
403
403
  name = File.extname(name) == '.podspec' ? name : "#{name}.podspec"
404
404
  file = config.project_root + name
405
405
  else
406
- file = config.project_root.glob('*.podspec').first
406
+ file = Pathname.glob(config.project_root + '*.podspec').first
407
407
  end
408
408
 
409
409
  spec = Specification.from_file(file)
@@ -63,9 +63,8 @@ module Pod
63
63
  settings['ARCHS'] = "armv6 armv7"
64
64
  end
65
65
 
66
- if platform == :ios && platform.deployment_target
67
- # TODO: add for osx as well
68
- settings['IPHONEOS_DEPLOYMENT_TARGET'] = platform.deployment_target.to_s
66
+ if platform.deployment_target
67
+ settings[platform.deployment_target_setting_name] = platform.deployment_target.to_s
69
68
  end
70
69
 
71
70
  target.build_settings('Debug').merge!(settings)
@@ -319,9 +319,49 @@ module Pod
319
319
  @parent ? @parent.recursive_compiler_flags | @compiler_flags[active_platform] : @compiler_flags[active_platform]
320
320
  end
321
321
 
322
+ ENABLE_OBJECT_USE_OBJC_FROM = {
323
+ :ios => Version.new('6'),
324
+ :osx => Version.new('10.8')
325
+ }
326
+
327
+ # The following behavior is regarding the `OS_OBJECT_USE_OBJC` flag. When
328
+ # set to `0`, it will allow code to use `dispatch_release()` on >= iOS 6.0
329
+ # and OS X 10.8.
330
+ #
331
+ # * New libraries that do *not* require ARC don’t need to care about this
332
+ # issue at all.
333
+ #
334
+ # * New libraries that *do* require ARC _and_ have a deployment target of
335
+ # >= iOS 6.0 or OS X 10.8:
336
+ #
337
+ # These no longer use `dispatch_release()` and should *not* have the
338
+ # `OS_OBJECT_USE_OBJC` flag set to `0`.
339
+ #
340
+ # **Note:** this means that these libraries *have* to specify the
341
+ # deployment target in order to function well.
342
+ #
343
+ # * New libraries that *do* require ARC, but have a deployment target of
344
+ # < iOS 6.0 or OS X 10.8:
345
+ #
346
+ # These contain `dispatch_release()` calls and as such need the
347
+ # `OS_OBJECT_USE_OBJC` flag set to `1`.
348
+ #
349
+ # **Note:** libraries that do *not* specify a platform version are
350
+ # assumed to have a deployment target of < iOS 6.0 or OS X 10.8.
351
+ #
352
+ # For more information, see: http://opensource.apple.com/source/libdispatch/libdispatch-228.18/os/object.h
353
+ #
322
354
  def compiler_flags
323
355
  flags = recursive_compiler_flags.dup
324
- flags << '-fobjc-arc' if requires_arc
356
+ if requires_arc
357
+ flags << '-fobjc-arc'
358
+ ios_target, osx_target = deployment_target(:ios), deployment_target(:osx)
359
+ if (ios_target.nil? && osx_target.nil?) ||
360
+ (ios_target && Version.new(ios_target) < ENABLE_OBJECT_USE_OBJC_FROM[:ios]) ||
361
+ (osx_target && Version.new(osx_target) < ENABLE_OBJECT_USE_OBJC_FROM[:osx])
362
+ flags << '-DOS_OBJECT_USE_OBJC=0'
363
+ end
364
+ end
325
365
  flags.join(' ')
326
366
  end
327
367
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.1
4
+ version: 0.16.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-13 00:00:00.000000000 Z
13
+ date: 2013-02-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: xcodeproj
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - ~>
21
21
  - !ruby/object:Gem::Version
22
- version: 0.4.1
22
+ version: 0.4.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,7 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - ~>
29
29
  - !ruby/object:Gem::Version
30
- version: 0.4.1
30
+ version: 0.4.3
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: faraday
33
33
  requirement: !ruby/object:Gem::Requirement