cocoapods-packager 0.5.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +1 -0
  5. data/Gemfile.lock +22 -0
  6. data/README.md +4 -1
  7. data/lib/cocoapods-packager/builder.rb +15 -2
  8. data/lib/cocoapods-packager/framework.rb +5 -0
  9. data/lib/cocoapods-packager/mangle.rb +1 -2
  10. data/lib/cocoapods-packager/pod_utils.rb +24 -0
  11. data/lib/cocoapods_packager.rb +1 -1
  12. data/lib/pod/command/package.rb +4 -0
  13. data/spec/command/error_spec.rb +35 -0
  14. data/spec/command/package_spec.rb +10 -0
  15. data/spec/fixtures/CPDColors.podspec +19 -0
  16. data/spec/fixtures/PackagerTest/.gitignore +21 -0
  17. data/spec/fixtures/PackagerTest/PackagerTest.xcodeproj/project.pbxproj +510 -0
  18. data/spec/fixtures/PackagerTest/PackagerTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  19. data/spec/fixtures/PackagerTest/PackagerTest.xcworkspace/contents.xcworkspacedata +1 -0
  20. data/spec/fixtures/PackagerTest/PackagerTest/CPDAppDelegate.h +15 -0
  21. data/spec/fixtures/PackagerTest/PackagerTest/CPDAppDelegate.m +49 -0
  22. data/spec/fixtures/PackagerTest/PackagerTest/Images.xcassets/AppIcon.appiconset/Contents.json +23 -0
  23. data/spec/fixtures/PackagerTest/PackagerTest/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
  24. data/spec/fixtures/PackagerTest/PackagerTest/PackagerTest-Info.plist +38 -0
  25. data/spec/fixtures/PackagerTest/PackagerTest/PackagerTest-Prefix.pch +16 -0
  26. data/spec/fixtures/PackagerTest/PackagerTest/en.lproj/InfoPlist.strings +2 -0
  27. data/spec/fixtures/PackagerTest/PackagerTest/main.m +18 -0
  28. data/spec/fixtures/PackagerTest/PackagerTestTests/PackagerTestTests-Info.plist +22 -0
  29. data/spec/fixtures/PackagerTest/PackagerTestTests/PackagerTestTests.m +34 -0
  30. data/spec/fixtures/PackagerTest/PackagerTestTests/en.lproj/InfoPlist.strings +2 -0
  31. data/spec/fixtures/PackagerTest/Podfile +8 -0
  32. data/spec/fixtures/PackagerTest/Podfile.lock +30 -0
  33. data/spec/fixtures/foo-bar.podspec +19 -0
  34. data/spec/integration/project_spec.rb +27 -0
  35. data/spec/spec_helper.rb +3 -0
  36. metadata +45 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1d3535ba8d583c5ce95324d1e7ddef3a00006cb0
4
- data.tar.gz: 006fdd96275923939dd7ead9c24a3f149a248174
3
+ metadata.gz: 591af7db1eae5a165c490790048809921356a001
4
+ data.tar.gz: 01d7f6d8d4cb562a781ebea871770ecbd6ad8faf
5
5
  SHA512:
6
- metadata.gz: acd2466fd4d5ba6704b1cae1b1ceb374334115e67bf93ff4753a451e9630b7f6d84f4d525d12a0efc99af9d7aca2c48521b376e52f4bfa4bd52058efdec6eb30
7
- data.tar.gz: fc61891a91651f0bc848e643245658c3ae9be10cc61b0fde27f27be5df7c6752d998745b8b644f0b803e8e081b963cf9930755429e12228e18a23516b8c8f4cf
6
+ metadata.gz: 50a846d36ea48df0b1043c1f503c4c6284282020e1d3ec732651fb70ad902cd66fd7e0e59bde2eae036e2afd22da6fb6bd1a89dc2fd188961a278eb5e73d73c4
7
+ data.tar.gz: 6cdd37a127620963ea5a7627bf092f1d0294f4b0e233c0944ce0711143362acaa81fbcb54bb8beef07658441e82219d510231fb3ff045ee4584cb384c7321a4f
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
+ coverage
1
2
  pkg
2
3
  .DS_Store
data/Gemfile CHANGED
@@ -8,4 +8,5 @@ group :development do
8
8
  gem 'mocha-on-bacon'
9
9
  gem 'mocha', '~> 0.11.4'
10
10
  gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master'
11
+ gem 'coveralls', require: false
11
12
  end
data/Gemfile.lock CHANGED
@@ -40,19 +40,40 @@ GEM
40
40
  cocoapods-plugins (0.2.0)
41
41
  nap
42
42
  colored (1.2)
43
+ coveralls (0.7.0)
44
+ multi_json (~> 1.3)
45
+ rest-client
46
+ simplecov (>= 0.7)
47
+ term-ansicolor
48
+ thor
49
+ docile (1.1.5)
43
50
  escape (0.0.4)
44
51
  fuzzy_match (2.0.4)
45
52
  i18n (0.6.11)
46
53
  json_pure (1.8.1)
47
54
  metaclass (0.0.4)
55
+ mime-types (2.1)
48
56
  mocha (0.11.4)
49
57
  metaclass (~> 0.0.1)
50
58
  mocha-on-bacon (0.2.1)
51
59
  mocha (>= 0.9.8)
52
60
  multi_json (1.10.1)
53
61
  nap (0.8.0)
62
+ netrc (0.7.7)
54
63
  open4 (1.3.4)
55
64
  rake (10.3.2)
65
+ rest-client (1.7.2)
66
+ mime-types (>= 1.16, < 3.0)
67
+ netrc (~> 0.7)
68
+ simplecov (0.9.0)
69
+ docile (~> 1.1.0)
70
+ multi_json
71
+ simplecov-html (~> 0.8.0)
72
+ simplecov-html (0.8.0)
73
+ term-ansicolor (1.3.0)
74
+ tins (~> 1.0)
75
+ thor (0.19.1)
76
+ tins (1.3.0)
56
77
  xcodeproj (0.17.0)
57
78
  activesupport (~> 3.0)
58
79
  colored (~> 1.2)
@@ -65,6 +86,7 @@ DEPENDENCIES
65
86
  bundler (~> 1.3)
66
87
  cocoapods
67
88
  cocoapods-packager!
89
+ coveralls
68
90
  mocha (~> 0.11.4)
69
91
  mocha-on-bacon
70
92
  prettybacon!
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # CocoaPods Packager
2
2
 
3
- [![Build Status](https://travis-ci.org/CocoaPods/cocoapods-packager.png?branch=master)](https://travis-ci.org/CocoaPods/cocoapods-packager)
3
+ [![Build Status](http://img.shields.io/travis/CocoaPods/cocoapods-packager/master.svg?style=flat)](https://travis-ci.org/CocoaPods/cocoapods-packager)
4
+ [![Coverage Status](https://img.shields.io/coveralls/CocoaPods/cocoapods-packager.svg)](https://coveralls.io/r/CocoaPods/cocoapods-packager?branch=master)
5
+ [![Gem Version](http://img.shields.io/gem/v/cocoapods-packager.svg?style=flat)](http://badge.fury.io/rb/cocoapods-packager)
6
+ [![Code Climate](http://img.shields.io/codeclimate/github/CocoaPods/cocoapods-packager.svg?style=flat)](https://codeclimate.com/github/CocoaPods/cocoapods-packager)
4
7
 
5
8
  CocoaPods plugin which allows you to generate a framework or static library from a podspec.
6
9
 
@@ -84,7 +84,7 @@ module Pod
84
84
  def compile
85
85
  xcodebuild
86
86
 
87
- if @spec.dependencies.count > 0 && @mangle
87
+ if dependency_count > 0 && @mangle
88
88
  return build_with_mangling
89
89
  end
90
90
 
@@ -108,7 +108,10 @@ module Pod
108
108
  `cp -rp #{@sandbox_root}/build/*.bundle #{@fwk.resources_path} 2>&1`
109
109
 
110
110
  resources = expand_paths(@spec.consumer(platform).resources)
111
- return if resources.count == 0
111
+ if resources.count == 0
112
+ @fwk.delete_resources
113
+ return
114
+ end
112
115
  `cp -rp #{resources.join(' ')} #{@fwk.resources_path}`
113
116
  end
114
117
 
@@ -117,6 +120,16 @@ module Pod
117
120
  @fwk.make
118
121
  end
119
122
 
123
+ def dependency_count
124
+ count = @spec.dependencies.count
125
+
126
+ @spec.subspecs.each do |subspec|
127
+ count += subspec.dependencies.count
128
+ end
129
+
130
+ count
131
+ end
132
+
120
133
  def expand_paths(path_specs)
121
134
  path_specs.map do |path_spec|
122
135
  Dir.glob(File.join(@source_dir, path_spec))
@@ -5,6 +5,11 @@ module Framework
5
5
  attr_reader :root_path
6
6
  attr_reader :versions_path
7
7
 
8
+ def delete_resources
9
+ Pathname.new(@resources_path).rmtree
10
+ (Pathname.new(@fwk_path) + Pathname.new('Resources')).delete
11
+ end
12
+
8
13
  def initialize(name, platform, embedded)
9
14
  @name = name
10
15
  @platform = platform
@@ -8,8 +8,6 @@ module Symbols
8
8
  # - put defines into `GCC_PREPROCESSOR_DEFINITIONS` for passing to Xcode
9
9
  #
10
10
  def mangle_for_pod_dependencies(pod_name, sandbox_root)
11
- pod_name = pod_name.gsub!('-', '_')
12
-
13
11
  pod_libs = Dir.glob("#{sandbox_root}/build/libPods-*.a").select do
14
12
  |file| file !~ /#{pod_name}/
15
13
  end
@@ -26,6 +24,7 @@ module Symbols
26
24
  end
27
25
 
28
26
  def alias_symbol(sym, pod_name)
27
+ pod_name = pod_name.gsub('-', '_')
29
28
  sym + "=Pod#{pod_name}_" + sym
30
29
  end
31
30
 
@@ -28,6 +28,19 @@ module Pod
28
28
  end
29
29
  end
30
30
 
31
+ def source_files_available?(spec)
32
+ deps = spec.dependencies.map { |dep| spec_with_name(dep.name) }
33
+
34
+ [spec, *deps].each do |specification|
35
+ source_files = specification.attributes_hash['source_files']
36
+ if source_files.nil?
37
+ return false
38
+ end
39
+ end
40
+
41
+ true
42
+ end
43
+
31
44
  def spec_with_name(name)
32
45
  return if name.nil?
33
46
 
@@ -41,6 +54,17 @@ module Pod
41
54
  return if path.nil? || !Pathname.new(path).exist?
42
55
 
43
56
  @path = path
57
+
58
+ if Pathname.new(path).directory?
59
+ help! path + ': is a directory.'
60
+ return
61
+ end
62
+
63
+ if !['.podspec', '.json'].include? Pathname.new(path).extname
64
+ help! path + ': is not a podspec.'
65
+ return
66
+ end
67
+
44
68
  Specification.from_file(path)
45
69
  end
46
70
  end
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  module Packager
3
- VERSION = '0.5.0'
3
+ VERSION = '0.9.0'
4
4
  end
5
5
  end
@@ -32,6 +32,10 @@ module Pod
32
32
  def validate!
33
33
  super
34
34
  help! 'A podspec name or path is required.' unless @spec
35
+
36
+ if !source_files_available? @spec
37
+ help! 'podspec has binary-only depedencies, mangling not possible.'
38
+ end
35
39
  end
36
40
 
37
41
  def run
@@ -0,0 +1,35 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ module Pod
4
+ describe 'Packager' do
5
+ after do
6
+ Dir.glob("CPDColors-*").each { |dir| Pathname.new(dir).rmtree }
7
+ end
8
+
9
+ it 'presents the help if a directory is provided' do
10
+ should.raise CLAide::Help do
11
+ command = Command.parse(%w{ package spec })
12
+ end.message.should.match /is a directory/
13
+ end
14
+
15
+ it 'presents the help if a random file is provided instead of a specification' do
16
+ should.raise CLAide::Help do
17
+ command = Command.parse(%w{ package README.md })
18
+ end.message.should.match /is not a podspec/
19
+ end
20
+
21
+ it 'presents the help if a podspec with binary-only dependencies is used' do
22
+ command = Command.parse(%w{ package spec/fixtures/CPDColors.podspec })
23
+ should.raise CLAide::Help do
24
+ command.validate!
25
+ end.message.should.match /binary-only/
26
+ end
27
+
28
+ it 'can package a podspec with binary-only dependencies if --no-mangle is specified' do
29
+ command = Command.parse(%w{ package spec/fixtures/CPDColors.podspec --no-mangle })
30
+ command.run
31
+
32
+ true.should == true # To make the test pass without any shoulds
33
+ end
34
+ end
35
+ end
@@ -6,6 +6,7 @@ module Pod
6
6
  after do
7
7
  Dir.glob("KFData-*").each { |dir| Pathname.new(dir).rmtree }
8
8
  Dir.glob("NikeKit-*").each { |dir| Pathname.new(dir).rmtree }
9
+ Dir.glob("foo-bar-*").each { |dir| Pathname.new(dir).rmtree }
9
10
  end
10
11
 
11
12
  it 'registers itself' do
@@ -51,6 +52,15 @@ module Pod
51
52
  symbols.should == []
52
53
  end
53
54
 
55
+ it "does not fail when the pod name contains a dash" do
56
+ SourcesManager.stubs(:search).returns(nil)
57
+
58
+ command = Command.parse(%w{ package spec/fixtures/foo-bar.podspec })
59
+ command.run
60
+
61
+ true.should == true # To make the test pass without any shoulds
62
+ end
63
+
54
64
  it "runs with a path to a spec" do
55
65
  SourcesManager.stubs(:search).returns(nil)
56
66
 
@@ -0,0 +1,19 @@
1
+ Pod::Spec.new do |s|
2
+ s.name = "CPDColors"
3
+ s.version = "0.1.0"
4
+ s.summary = "Stay true to the brand with these orta-sanctioned colors."
5
+ s.homepage = "https://github.com/neonichu/CPDColors"
6
+ s.screenshots = "https://raw.githubusercontent.com/neonichu/CPDColors/master/screenshot.png"
7
+ s.license = 'MIT'
8
+ s.author = { "Boris Bügling" => "boris@icculus.org" }
9
+ s.source = { :git => "https://github.com/neonichu/CPDColors.git", :tag => s.version.to_s }
10
+ s.social_media_url = 'https://twitter.com/NeoNacho'
11
+
12
+ s.platform = :ios, '6.0'
13
+
14
+ s.requires_arc = true
15
+ s.source_files = 'Code'
16
+ s.public_header_files = 'Code/**/*.h'
17
+
18
+ s.dependency 'Parse-iOS-SDK'
19
+ end
@@ -0,0 +1,21 @@
1
+ ## CocoaPods
2
+
3
+ Pods
4
+
5
+ ## Node
6
+
7
+ node_modules
8
+
9
+ ## OS X
10
+
11
+ .DS_Store
12
+
13
+ ## Other
14
+
15
+ .pt
16
+ NikeKit.framework
17
+
18
+ ## Xcode
19
+
20
+ *.xccheckout
21
+ xcuserdata
@@ -0,0 +1,510 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ A1DE56B919AA4A97000339C6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56B819AA4A97000339C6 /* Foundation.framework */; };
11
+ A1DE56BB19AA4A97000339C6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56BA19AA4A97000339C6 /* CoreGraphics.framework */; };
12
+ A1DE56BD19AA4A97000339C6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56BC19AA4A97000339C6 /* UIKit.framework */; };
13
+ A1DE56C319AA4A97000339C6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A1DE56C119AA4A97000339C6 /* InfoPlist.strings */; };
14
+ A1DE56C519AA4A97000339C6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A1DE56C419AA4A97000339C6 /* main.m */; };
15
+ A1DE56C919AA4A97000339C6 /* CPDAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A1DE56C819AA4A97000339C6 /* CPDAppDelegate.m */; };
16
+ A1DE56CB19AA4A97000339C6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A1DE56CA19AA4A97000339C6 /* Images.xcassets */; };
17
+ A1DE56D219AA4A97000339C6 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56D119AA4A97000339C6 /* XCTest.framework */; };
18
+ A1DE56D319AA4A97000339C6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56B819AA4A97000339C6 /* Foundation.framework */; };
19
+ A1DE56D419AA4A97000339C6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56BC19AA4A97000339C6 /* UIKit.framework */; };
20
+ A1DE56DC19AA4A97000339C6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A1DE56DA19AA4A97000339C6 /* InfoPlist.strings */; };
21
+ A1DE56DE19AA4A97000339C6 /* PackagerTestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A1DE56DD19AA4A97000339C6 /* PackagerTestTests.m */; };
22
+ A1DE56E819AA4AC4000339C6 /* NikeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DE56E719AA4AC4000339C6 /* NikeKit.framework */; };
23
+ EF1616E64C6F45BE9B377A32 /* libPods-PackagerTest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 38EC8BF834704005B8AE03E6 /* libPods-PackagerTest.a */; };
24
+ /* End PBXBuildFile section */
25
+
26
+ /* Begin PBXContainerItemProxy section */
27
+ A1DE56D519AA4A97000339C6 /* PBXContainerItemProxy */ = {
28
+ isa = PBXContainerItemProxy;
29
+ containerPortal = A1DE56AD19AA4A97000339C6 /* Project object */;
30
+ proxyType = 1;
31
+ remoteGlobalIDString = A1DE56B419AA4A97000339C6;
32
+ remoteInfo = PackagerTest;
33
+ };
34
+ /* End PBXContainerItemProxy section */
35
+
36
+ /* Begin PBXFileReference section */
37
+ 38EC8BF834704005B8AE03E6 /* libPods-PackagerTest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PackagerTest.a"; sourceTree = BUILT_PRODUCTS_DIR; };
38
+ 69E6CB32DE4D4894BCEB4EF1 /* Pods-PackagerTest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PackagerTest.xcconfig"; path = "Pods/Pods-PackagerTest.xcconfig"; sourceTree = "<group>"; };
39
+ A1DE56B519AA4A97000339C6 /* PackagerTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PackagerTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
40
+ A1DE56B819AA4A97000339C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
41
+ A1DE56BA19AA4A97000339C6 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
42
+ A1DE56BC19AA4A97000339C6 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
43
+ A1DE56C019AA4A97000339C6 /* PackagerTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PackagerTest-Info.plist"; sourceTree = "<group>"; };
44
+ A1DE56C219AA4A97000339C6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
45
+ A1DE56C419AA4A97000339C6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
46
+ A1DE56C619AA4A97000339C6 /* PackagerTest-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PackagerTest-Prefix.pch"; sourceTree = "<group>"; };
47
+ A1DE56C719AA4A97000339C6 /* CPDAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPDAppDelegate.h; sourceTree = "<group>"; };
48
+ A1DE56C819AA4A97000339C6 /* CPDAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPDAppDelegate.m; sourceTree = "<group>"; };
49
+ A1DE56CA19AA4A97000339C6 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
50
+ A1DE56D019AA4A97000339C6 /* PackagerTestTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PackagerTestTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
51
+ A1DE56D119AA4A97000339C6 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
52
+ A1DE56D919AA4A97000339C6 /* PackagerTestTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PackagerTestTests-Info.plist"; sourceTree = "<group>"; };
53
+ A1DE56DB19AA4A97000339C6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
54
+ A1DE56DD19AA4A97000339C6 /* PackagerTestTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PackagerTestTests.m; sourceTree = "<group>"; };
55
+ A1DE56E719AA4AC4000339C6 /* NikeKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = NikeKit.framework; sourceTree = "<group>"; };
56
+ /* End PBXFileReference section */
57
+
58
+ /* Begin PBXFrameworksBuildPhase section */
59
+ A1DE56B219AA4A97000339C6 /* Frameworks */ = {
60
+ isa = PBXFrameworksBuildPhase;
61
+ buildActionMask = 2147483647;
62
+ files = (
63
+ A1DE56E819AA4AC4000339C6 /* NikeKit.framework in Frameworks */,
64
+ A1DE56BB19AA4A97000339C6 /* CoreGraphics.framework in Frameworks */,
65
+ A1DE56BD19AA4A97000339C6 /* UIKit.framework in Frameworks */,
66
+ A1DE56B919AA4A97000339C6 /* Foundation.framework in Frameworks */,
67
+ EF1616E64C6F45BE9B377A32 /* libPods-PackagerTest.a in Frameworks */,
68
+ );
69
+ runOnlyForDeploymentPostprocessing = 0;
70
+ };
71
+ A1DE56CD19AA4A97000339C6 /* Frameworks */ = {
72
+ isa = PBXFrameworksBuildPhase;
73
+ buildActionMask = 2147483647;
74
+ files = (
75
+ A1DE56D219AA4A97000339C6 /* XCTest.framework in Frameworks */,
76
+ A1DE56D419AA4A97000339C6 /* UIKit.framework in Frameworks */,
77
+ A1DE56D319AA4A97000339C6 /* Foundation.framework in Frameworks */,
78
+ );
79
+ runOnlyForDeploymentPostprocessing = 0;
80
+ };
81
+ /* End PBXFrameworksBuildPhase section */
82
+
83
+ /* Begin PBXGroup section */
84
+ A1DE56AC19AA4A97000339C6 = {
85
+ isa = PBXGroup;
86
+ children = (
87
+ A1DE56BE19AA4A97000339C6 /* PackagerTest */,
88
+ A1DE56D719AA4A97000339C6 /* PackagerTestTests */,
89
+ A1DE56B719AA4A97000339C6 /* Frameworks */,
90
+ A1DE56B619AA4A97000339C6 /* Products */,
91
+ 69E6CB32DE4D4894BCEB4EF1 /* Pods-PackagerTest.xcconfig */,
92
+ );
93
+ sourceTree = "<group>";
94
+ };
95
+ A1DE56B619AA4A97000339C6 /* Products */ = {
96
+ isa = PBXGroup;
97
+ children = (
98
+ A1DE56B519AA4A97000339C6 /* PackagerTest.app */,
99
+ A1DE56D019AA4A97000339C6 /* PackagerTestTests.xctest */,
100
+ );
101
+ name = Products;
102
+ sourceTree = "<group>";
103
+ };
104
+ A1DE56B719AA4A97000339C6 /* Frameworks */ = {
105
+ isa = PBXGroup;
106
+ children = (
107
+ A1DE56B819AA4A97000339C6 /* Foundation.framework */,
108
+ A1DE56BA19AA4A97000339C6 /* CoreGraphics.framework */,
109
+ A1DE56E719AA4AC4000339C6 /* NikeKit.framework */,
110
+ A1DE56BC19AA4A97000339C6 /* UIKit.framework */,
111
+ A1DE56D119AA4A97000339C6 /* XCTest.framework */,
112
+ 38EC8BF834704005B8AE03E6 /* libPods-PackagerTest.a */,
113
+ );
114
+ name = Frameworks;
115
+ sourceTree = "<group>";
116
+ };
117
+ A1DE56BE19AA4A97000339C6 /* PackagerTest */ = {
118
+ isa = PBXGroup;
119
+ children = (
120
+ A1DE56C719AA4A97000339C6 /* CPDAppDelegate.h */,
121
+ A1DE56C819AA4A97000339C6 /* CPDAppDelegate.m */,
122
+ A1DE56CA19AA4A97000339C6 /* Images.xcassets */,
123
+ A1DE56BF19AA4A97000339C6 /* Supporting Files */,
124
+ );
125
+ path = PackagerTest;
126
+ sourceTree = "<group>";
127
+ };
128
+ A1DE56BF19AA4A97000339C6 /* Supporting Files */ = {
129
+ isa = PBXGroup;
130
+ children = (
131
+ A1DE56C019AA4A97000339C6 /* PackagerTest-Info.plist */,
132
+ A1DE56C119AA4A97000339C6 /* InfoPlist.strings */,
133
+ A1DE56C419AA4A97000339C6 /* main.m */,
134
+ A1DE56C619AA4A97000339C6 /* PackagerTest-Prefix.pch */,
135
+ );
136
+ name = "Supporting Files";
137
+ sourceTree = "<group>";
138
+ };
139
+ A1DE56D719AA4A97000339C6 /* PackagerTestTests */ = {
140
+ isa = PBXGroup;
141
+ children = (
142
+ A1DE56DD19AA4A97000339C6 /* PackagerTestTests.m */,
143
+ A1DE56D819AA4A97000339C6 /* Supporting Files */,
144
+ );
145
+ path = PackagerTestTests;
146
+ sourceTree = "<group>";
147
+ };
148
+ A1DE56D819AA4A97000339C6 /* Supporting Files */ = {
149
+ isa = PBXGroup;
150
+ children = (
151
+ A1DE56D919AA4A97000339C6 /* PackagerTestTests-Info.plist */,
152
+ A1DE56DA19AA4A97000339C6 /* InfoPlist.strings */,
153
+ );
154
+ name = "Supporting Files";
155
+ sourceTree = "<group>";
156
+ };
157
+ /* End PBXGroup section */
158
+
159
+ /* Begin PBXNativeTarget section */
160
+ A1DE56B419AA4A97000339C6 /* PackagerTest */ = {
161
+ isa = PBXNativeTarget;
162
+ buildConfigurationList = A1DE56E119AA4A97000339C6 /* Build configuration list for PBXNativeTarget "PackagerTest" */;
163
+ buildPhases = (
164
+ 49547FD0833143C7B1B693B1 /* Check Pods Manifest.lock */,
165
+ A1DE56B119AA4A97000339C6 /* Sources */,
166
+ A1DE56B219AA4A97000339C6 /* Frameworks */,
167
+ A1DE56B319AA4A97000339C6 /* Resources */,
168
+ D5BB2CBFD85C4871BD1444B2 /* Copy Pods Resources */,
169
+ );
170
+ buildRules = (
171
+ );
172
+ dependencies = (
173
+ );
174
+ name = PackagerTest;
175
+ productName = PackagerTest;
176
+ productReference = A1DE56B519AA4A97000339C6 /* PackagerTest.app */;
177
+ productType = "com.apple.product-type.application";
178
+ };
179
+ A1DE56CF19AA4A97000339C6 /* PackagerTestTests */ = {
180
+ isa = PBXNativeTarget;
181
+ buildConfigurationList = A1DE56E419AA4A97000339C6 /* Build configuration list for PBXNativeTarget "PackagerTestTests" */;
182
+ buildPhases = (
183
+ A1DE56CC19AA4A97000339C6 /* Sources */,
184
+ A1DE56CD19AA4A97000339C6 /* Frameworks */,
185
+ A1DE56CE19AA4A97000339C6 /* Resources */,
186
+ );
187
+ buildRules = (
188
+ );
189
+ dependencies = (
190
+ A1DE56D619AA4A97000339C6 /* PBXTargetDependency */,
191
+ );
192
+ name = PackagerTestTests;
193
+ productName = PackagerTestTests;
194
+ productReference = A1DE56D019AA4A97000339C6 /* PackagerTestTests.xctest */;
195
+ productType = "com.apple.product-type.bundle.unit-test";
196
+ };
197
+ /* End PBXNativeTarget section */
198
+
199
+ /* Begin PBXProject section */
200
+ A1DE56AD19AA4A97000339C6 /* Project object */ = {
201
+ isa = PBXProject;
202
+ attributes = {
203
+ CLASSPREFIX = CPD;
204
+ LastUpgradeCheck = 0510;
205
+ ORGANIZATIONNAME = CocoaPods;
206
+ TargetAttributes = {
207
+ A1DE56CF19AA4A97000339C6 = {
208
+ TestTargetID = A1DE56B419AA4A97000339C6;
209
+ };
210
+ };
211
+ };
212
+ buildConfigurationList = A1DE56B019AA4A97000339C6 /* Build configuration list for PBXProject "PackagerTest" */;
213
+ compatibilityVersion = "Xcode 3.2";
214
+ developmentRegion = English;
215
+ hasScannedForEncodings = 0;
216
+ knownRegions = (
217
+ en,
218
+ );
219
+ mainGroup = A1DE56AC19AA4A97000339C6;
220
+ productRefGroup = A1DE56B619AA4A97000339C6 /* Products */;
221
+ projectDirPath = "";
222
+ projectRoot = "";
223
+ targets = (
224
+ A1DE56B419AA4A97000339C6 /* PackagerTest */,
225
+ A1DE56CF19AA4A97000339C6 /* PackagerTestTests */,
226
+ );
227
+ };
228
+ /* End PBXProject section */
229
+
230
+ /* Begin PBXResourcesBuildPhase section */
231
+ A1DE56B319AA4A97000339C6 /* Resources */ = {
232
+ isa = PBXResourcesBuildPhase;
233
+ buildActionMask = 2147483647;
234
+ files = (
235
+ A1DE56C319AA4A97000339C6 /* InfoPlist.strings in Resources */,
236
+ A1DE56CB19AA4A97000339C6 /* Images.xcassets in Resources */,
237
+ );
238
+ runOnlyForDeploymentPostprocessing = 0;
239
+ };
240
+ A1DE56CE19AA4A97000339C6 /* Resources */ = {
241
+ isa = PBXResourcesBuildPhase;
242
+ buildActionMask = 2147483647;
243
+ files = (
244
+ A1DE56DC19AA4A97000339C6 /* InfoPlist.strings in Resources */,
245
+ );
246
+ runOnlyForDeploymentPostprocessing = 0;
247
+ };
248
+ /* End PBXResourcesBuildPhase section */
249
+
250
+ /* Begin PBXShellScriptBuildPhase section */
251
+ 49547FD0833143C7B1B693B1 /* Check Pods Manifest.lock */ = {
252
+ isa = PBXShellScriptBuildPhase;
253
+ buildActionMask = 2147483647;
254
+ files = (
255
+ );
256
+ inputPaths = (
257
+ );
258
+ name = "Check Pods Manifest.lock";
259
+ outputPaths = (
260
+ );
261
+ runOnlyForDeploymentPostprocessing = 0;
262
+ shellPath = /bin/sh;
263
+ shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
264
+ showEnvVarsInLog = 0;
265
+ };
266
+ D5BB2CBFD85C4871BD1444B2 /* Copy Pods Resources */ = {
267
+ isa = PBXShellScriptBuildPhase;
268
+ buildActionMask = 2147483647;
269
+ files = (
270
+ );
271
+ inputPaths = (
272
+ );
273
+ name = "Copy Pods Resources";
274
+ outputPaths = (
275
+ );
276
+ runOnlyForDeploymentPostprocessing = 0;
277
+ shellPath = /bin/sh;
278
+ shellScript = "\"${SRCROOT}/Pods/Pods-PackagerTest-resources.sh\"\n";
279
+ showEnvVarsInLog = 0;
280
+ };
281
+ /* End PBXShellScriptBuildPhase section */
282
+
283
+ /* Begin PBXSourcesBuildPhase section */
284
+ A1DE56B119AA4A97000339C6 /* Sources */ = {
285
+ isa = PBXSourcesBuildPhase;
286
+ buildActionMask = 2147483647;
287
+ files = (
288
+ A1DE56C919AA4A97000339C6 /* CPDAppDelegate.m in Sources */,
289
+ A1DE56C519AA4A97000339C6 /* main.m in Sources */,
290
+ );
291
+ runOnlyForDeploymentPostprocessing = 0;
292
+ };
293
+ A1DE56CC19AA4A97000339C6 /* Sources */ = {
294
+ isa = PBXSourcesBuildPhase;
295
+ buildActionMask = 2147483647;
296
+ files = (
297
+ A1DE56DE19AA4A97000339C6 /* PackagerTestTests.m in Sources */,
298
+ );
299
+ runOnlyForDeploymentPostprocessing = 0;
300
+ };
301
+ /* End PBXSourcesBuildPhase section */
302
+
303
+ /* Begin PBXTargetDependency section */
304
+ A1DE56D619AA4A97000339C6 /* PBXTargetDependency */ = {
305
+ isa = PBXTargetDependency;
306
+ target = A1DE56B419AA4A97000339C6 /* PackagerTest */;
307
+ targetProxy = A1DE56D519AA4A97000339C6 /* PBXContainerItemProxy */;
308
+ };
309
+ /* End PBXTargetDependency section */
310
+
311
+ /* Begin PBXVariantGroup section */
312
+ A1DE56C119AA4A97000339C6 /* InfoPlist.strings */ = {
313
+ isa = PBXVariantGroup;
314
+ children = (
315
+ A1DE56C219AA4A97000339C6 /* en */,
316
+ );
317
+ name = InfoPlist.strings;
318
+ sourceTree = "<group>";
319
+ };
320
+ A1DE56DA19AA4A97000339C6 /* InfoPlist.strings */ = {
321
+ isa = PBXVariantGroup;
322
+ children = (
323
+ A1DE56DB19AA4A97000339C6 /* en */,
324
+ );
325
+ name = InfoPlist.strings;
326
+ sourceTree = "<group>";
327
+ };
328
+ /* End PBXVariantGroup section */
329
+
330
+ /* Begin XCBuildConfiguration section */
331
+ A1DE56DF19AA4A97000339C6 /* Debug */ = {
332
+ isa = XCBuildConfiguration;
333
+ buildSettings = {
334
+ ALWAYS_SEARCH_USER_PATHS = NO;
335
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
336
+ CLANG_CXX_LIBRARY = "libc++";
337
+ CLANG_ENABLE_MODULES = YES;
338
+ CLANG_ENABLE_OBJC_ARC = YES;
339
+ CLANG_WARN_BOOL_CONVERSION = YES;
340
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
341
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
342
+ CLANG_WARN_EMPTY_BODY = YES;
343
+ CLANG_WARN_ENUM_CONVERSION = YES;
344
+ CLANG_WARN_INT_CONVERSION = YES;
345
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
346
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
347
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
348
+ COPY_PHASE_STRIP = NO;
349
+ GCC_C_LANGUAGE_STANDARD = gnu99;
350
+ GCC_DYNAMIC_NO_PIC = NO;
351
+ GCC_OPTIMIZATION_LEVEL = 0;
352
+ GCC_PREPROCESSOR_DEFINITIONS = (
353
+ "DEBUG=1",
354
+ "$(inherited)",
355
+ );
356
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
357
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
358
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
359
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
360
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
361
+ GCC_WARN_UNUSED_FUNCTION = YES;
362
+ GCC_WARN_UNUSED_VARIABLE = YES;
363
+ IPHONEOS_DEPLOYMENT_TARGET = 7.1;
364
+ ONLY_ACTIVE_ARCH = YES;
365
+ SDKROOT = iphoneos;
366
+ };
367
+ name = Debug;
368
+ };
369
+ A1DE56E019AA4A97000339C6 /* Release */ = {
370
+ isa = XCBuildConfiguration;
371
+ buildSettings = {
372
+ ALWAYS_SEARCH_USER_PATHS = NO;
373
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
374
+ CLANG_CXX_LIBRARY = "libc++";
375
+ CLANG_ENABLE_MODULES = YES;
376
+ CLANG_ENABLE_OBJC_ARC = YES;
377
+ CLANG_WARN_BOOL_CONVERSION = YES;
378
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
379
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
380
+ CLANG_WARN_EMPTY_BODY = YES;
381
+ CLANG_WARN_ENUM_CONVERSION = YES;
382
+ CLANG_WARN_INT_CONVERSION = YES;
383
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
384
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
385
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
386
+ COPY_PHASE_STRIP = YES;
387
+ ENABLE_NS_ASSERTIONS = NO;
388
+ GCC_C_LANGUAGE_STANDARD = gnu99;
389
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
390
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
391
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
392
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
393
+ GCC_WARN_UNUSED_FUNCTION = YES;
394
+ GCC_WARN_UNUSED_VARIABLE = YES;
395
+ IPHONEOS_DEPLOYMENT_TARGET = 7.1;
396
+ SDKROOT = iphoneos;
397
+ VALIDATE_PRODUCT = YES;
398
+ };
399
+ name = Release;
400
+ };
401
+ A1DE56E219AA4A97000339C6 /* Debug */ = {
402
+ isa = XCBuildConfiguration;
403
+ baseConfigurationReference = 69E6CB32DE4D4894BCEB4EF1 /* Pods-PackagerTest.xcconfig */;
404
+ buildSettings = {
405
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
406
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
407
+ FRAMEWORK_SEARCH_PATHS = (
408
+ "$(inherited)",
409
+ "$(PROJECT_DIR)",
410
+ );
411
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
412
+ GCC_PREFIX_HEADER = "PackagerTest/PackagerTest-Prefix.pch";
413
+ INFOPLIST_FILE = "PackagerTest/PackagerTest-Info.plist";
414
+ PRODUCT_NAME = "$(TARGET_NAME)";
415
+ WRAPPER_EXTENSION = app;
416
+ };
417
+ name = Debug;
418
+ };
419
+ A1DE56E319AA4A97000339C6 /* Release */ = {
420
+ isa = XCBuildConfiguration;
421
+ baseConfigurationReference = 69E6CB32DE4D4894BCEB4EF1 /* Pods-PackagerTest.xcconfig */;
422
+ buildSettings = {
423
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
424
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
425
+ FRAMEWORK_SEARCH_PATHS = (
426
+ "$(inherited)",
427
+ "$(PROJECT_DIR)",
428
+ );
429
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
430
+ GCC_PREFIX_HEADER = "PackagerTest/PackagerTest-Prefix.pch";
431
+ INFOPLIST_FILE = "PackagerTest/PackagerTest-Info.plist";
432
+ PRODUCT_NAME = "$(TARGET_NAME)";
433
+ WRAPPER_EXTENSION = app;
434
+ };
435
+ name = Release;
436
+ };
437
+ A1DE56E519AA4A97000339C6 /* Debug */ = {
438
+ isa = XCBuildConfiguration;
439
+ buildSettings = {
440
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PackagerTest.app/PackagerTest";
441
+ FRAMEWORK_SEARCH_PATHS = (
442
+ "$(SDKROOT)/Developer/Library/Frameworks",
443
+ "$(inherited)",
444
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
445
+ );
446
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
447
+ GCC_PREFIX_HEADER = "PackagerTest/PackagerTest-Prefix.pch";
448
+ GCC_PREPROCESSOR_DEFINITIONS = (
449
+ "DEBUG=1",
450
+ "$(inherited)",
451
+ );
452
+ INFOPLIST_FILE = "PackagerTestTests/PackagerTestTests-Info.plist";
453
+ PRODUCT_NAME = "$(TARGET_NAME)";
454
+ TEST_HOST = "$(BUNDLE_LOADER)";
455
+ WRAPPER_EXTENSION = xctest;
456
+ };
457
+ name = Debug;
458
+ };
459
+ A1DE56E619AA4A97000339C6 /* Release */ = {
460
+ isa = XCBuildConfiguration;
461
+ buildSettings = {
462
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PackagerTest.app/PackagerTest";
463
+ FRAMEWORK_SEARCH_PATHS = (
464
+ "$(SDKROOT)/Developer/Library/Frameworks",
465
+ "$(inherited)",
466
+ "$(DEVELOPER_FRAMEWORKS_DIR)",
467
+ );
468
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
469
+ GCC_PREFIX_HEADER = "PackagerTest/PackagerTest-Prefix.pch";
470
+ INFOPLIST_FILE = "PackagerTestTests/PackagerTestTests-Info.plist";
471
+ PRODUCT_NAME = "$(TARGET_NAME)";
472
+ TEST_HOST = "$(BUNDLE_LOADER)";
473
+ WRAPPER_EXTENSION = xctest;
474
+ };
475
+ name = Release;
476
+ };
477
+ /* End XCBuildConfiguration section */
478
+
479
+ /* Begin XCConfigurationList section */
480
+ A1DE56B019AA4A97000339C6 /* Build configuration list for PBXProject "PackagerTest" */ = {
481
+ isa = XCConfigurationList;
482
+ buildConfigurations = (
483
+ A1DE56DF19AA4A97000339C6 /* Debug */,
484
+ A1DE56E019AA4A97000339C6 /* Release */,
485
+ );
486
+ defaultConfigurationIsVisible = 0;
487
+ defaultConfigurationName = Release;
488
+ };
489
+ A1DE56E119AA4A97000339C6 /* Build configuration list for PBXNativeTarget "PackagerTest" */ = {
490
+ isa = XCConfigurationList;
491
+ buildConfigurations = (
492
+ A1DE56E219AA4A97000339C6 /* Debug */,
493
+ A1DE56E319AA4A97000339C6 /* Release */,
494
+ );
495
+ defaultConfigurationIsVisible = 0;
496
+ defaultConfigurationName = Release;
497
+ };
498
+ A1DE56E419AA4A97000339C6 /* Build configuration list for PBXNativeTarget "PackagerTestTests" */ = {
499
+ isa = XCConfigurationList;
500
+ buildConfigurations = (
501
+ A1DE56E519AA4A97000339C6 /* Debug */,
502
+ A1DE56E619AA4A97000339C6 /* Release */,
503
+ );
504
+ defaultConfigurationIsVisible = 0;
505
+ defaultConfigurationName = Release;
506
+ };
507
+ /* End XCConfigurationList section */
508
+ };
509
+ rootObject = A1DE56AD19AA4A97000339C6 /* Project object */;
510
+ }