my-cocoapods-packager 1.5.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 +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +3 -0
- data/.rubocop-cocoapods.yml +71 -0
- data/.rubocop.yml +38 -0
- data/.travis.yml +9 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +121 -0
- data/LICENSE +22 -0
- data/README.md +42 -0
- data/Rakefile +12 -0
- data/cocoapods-packager.gemspec +22 -0
- data/lib/cocoapods-packager/builder.rb +340 -0
- data/lib/cocoapods-packager/framework.rb +66 -0
- data/lib/cocoapods-packager/mangle.rb +32 -0
- data/lib/cocoapods-packager/pod_utils.rb +252 -0
- data/lib/cocoapods-packager/spec_builder.rb +63 -0
- data/lib/cocoapods-packager/symbols.rb +35 -0
- data/lib/cocoapods-packager/user_interface/build_failed_report.rb +15 -0
- data/lib/cocoapods_packager.rb +5 -0
- data/lib/cocoapods_plugin.rb +8 -0
- data/lib/pod/command/package.rb +163 -0
- data/scripts/lstconst.sh +9 -0
- data/scripts/lstsym.sh +8 -0
- data/spec/command/error_spec.rb +74 -0
- data/spec/command/package_spec.rb +359 -0
- data/spec/command/subspecs_spec.rb +30 -0
- data/spec/fixtures/Builder.podspec +25 -0
- data/spec/fixtures/CPDColors.podspec +19 -0
- data/spec/fixtures/FH.podspec +18 -0
- data/spec/fixtures/KFData.podspec +73 -0
- data/spec/fixtures/LibraryConsumerDemo/.gitignore +22 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer/AppDelegate.h +17 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer/AppDelegate.m +27 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer/Info.plist +40 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer/main.m +16 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer.xcodeproj/project.pbxproj +340 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer.xcodeproj/xcshareddata/xcschemes/LibraryConsumer.xcscheme +100 -0
- data/spec/fixtures/LibraryConsumerDemo/LibraryConsumer.xcworkspace/contents.xcworkspacedata +10 -0
- data/spec/fixtures/LibraryConsumerDemo/Podfile +5 -0
- data/spec/fixtures/LibraryDemo.podspec +14 -0
- data/spec/fixtures/NikeKit.podspec +19 -0
- data/spec/fixtures/OpenSans.podspec +18 -0
- data/spec/fixtures/PackagerTest/.gitignore +21 -0
- data/spec/fixtures/PackagerTest/PackagerTest/CPDAppDelegate.h +15 -0
- data/spec/fixtures/PackagerTest/PackagerTest/CPDAppDelegate.m +49 -0
- data/spec/fixtures/PackagerTest/PackagerTest/Images.xcassets/AppIcon.appiconset/Contents.json +23 -0
- data/spec/fixtures/PackagerTest/PackagerTest/Images.xcassets/LaunchImage.launchimage/Contents.json +23 -0
- data/spec/fixtures/PackagerTest/PackagerTest/PackagerTest-Info.plist +38 -0
- data/spec/fixtures/PackagerTest/PackagerTest/PackagerTest-Prefix.pch +16 -0
- data/spec/fixtures/PackagerTest/PackagerTest/en.lproj/InfoPlist.strings +2 -0
- data/spec/fixtures/PackagerTest/PackagerTest/main.m +18 -0
- data/spec/fixtures/PackagerTest/PackagerTest.xcodeproj/project.pbxproj +536 -0
- data/spec/fixtures/PackagerTest/PackagerTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/fixtures/PackagerTest/PackagerTest.xcodeproj/xcshareddata/xcschemes/PackagerTest.xcscheme +110 -0
- data/spec/fixtures/PackagerTest/PackagerTest.xcworkspace/contents.xcworkspacedata +1 -0
- data/spec/fixtures/PackagerTest/PackagerTestTests/PackagerTestTests-Info.plist +22 -0
- data/spec/fixtures/PackagerTest/PackagerTestTests/PackagerTestTests.m +34 -0
- data/spec/fixtures/PackagerTest/PackagerTestTests/en.lproj/InfoPlist.strings +2 -0
- data/spec/fixtures/PackagerTest/Podfile +10 -0
- data/spec/fixtures/PackagerTest/Podfile.lock +32 -0
- data/spec/fixtures/Weakly.podspec +13 -0
- data/spec/fixtures/a.podspec +19 -0
- data/spec/fixtures/foo-bar.podspec +19 -0
- data/spec/fixtures/layer-client-messaging-schema.podspec +13 -0
- data/spec/integration/project_spec.rb +70 -0
- data/spec/pod/utils_spec.rb +58 -0
- data/spec/spec_helper.rb +50 -0
- data/spec/specification/builder_spec.rb +40 -0
- data/spec/specification/spec_builder_spec.rb +61 -0
- data/spec/user_interface/build_failed_report_spec.rb +11 -0
- metadata +212 -0
data/spec/fixtures/PackagerTest/PackagerTest.xcodeproj/xcshareddata/xcschemes/PackagerTest.xcscheme
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Scheme
|
3
|
+
LastUpgradeVersion = "0610"
|
4
|
+
version = "1.3">
|
5
|
+
<BuildAction
|
6
|
+
parallelizeBuildables = "YES"
|
7
|
+
buildImplicitDependencies = "YES">
|
8
|
+
<BuildActionEntries>
|
9
|
+
<BuildActionEntry
|
10
|
+
buildForTesting = "YES"
|
11
|
+
buildForRunning = "YES"
|
12
|
+
buildForProfiling = "YES"
|
13
|
+
buildForArchiving = "YES"
|
14
|
+
buildForAnalyzing = "YES">
|
15
|
+
<BuildableReference
|
16
|
+
BuildableIdentifier = "primary"
|
17
|
+
BlueprintIdentifier = "A1DE56B419AA4A97000339C6"
|
18
|
+
BuildableName = "PackagerTest.app"
|
19
|
+
BlueprintName = "PackagerTest"
|
20
|
+
ReferencedContainer = "container:PackagerTest.xcodeproj">
|
21
|
+
</BuildableReference>
|
22
|
+
</BuildActionEntry>
|
23
|
+
<BuildActionEntry
|
24
|
+
buildForTesting = "YES"
|
25
|
+
buildForRunning = "YES"
|
26
|
+
buildForProfiling = "NO"
|
27
|
+
buildForArchiving = "NO"
|
28
|
+
buildForAnalyzing = "YES">
|
29
|
+
<BuildableReference
|
30
|
+
BuildableIdentifier = "primary"
|
31
|
+
BlueprintIdentifier = "A1DE56CF19AA4A97000339C6"
|
32
|
+
BuildableName = "PackagerTestTests.xctest"
|
33
|
+
BlueprintName = "PackagerTestTests"
|
34
|
+
ReferencedContainer = "container:PackagerTest.xcodeproj">
|
35
|
+
</BuildableReference>
|
36
|
+
</BuildActionEntry>
|
37
|
+
</BuildActionEntries>
|
38
|
+
</BuildAction>
|
39
|
+
<TestAction
|
40
|
+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
41
|
+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
42
|
+
shouldUseLaunchSchemeArgsEnv = "YES"
|
43
|
+
buildConfiguration = "Debug">
|
44
|
+
<Testables>
|
45
|
+
<TestableReference
|
46
|
+
skipped = "NO">
|
47
|
+
<BuildableReference
|
48
|
+
BuildableIdentifier = "primary"
|
49
|
+
BlueprintIdentifier = "A1DE56CF19AA4A97000339C6"
|
50
|
+
BuildableName = "PackagerTestTests.xctest"
|
51
|
+
BlueprintName = "PackagerTestTests"
|
52
|
+
ReferencedContainer = "container:PackagerTest.xcodeproj">
|
53
|
+
</BuildableReference>
|
54
|
+
</TestableReference>
|
55
|
+
</Testables>
|
56
|
+
<MacroExpansion>
|
57
|
+
<BuildableReference
|
58
|
+
BuildableIdentifier = "primary"
|
59
|
+
BlueprintIdentifier = "A1DE56B419AA4A97000339C6"
|
60
|
+
BuildableName = "PackagerTest.app"
|
61
|
+
BlueprintName = "PackagerTest"
|
62
|
+
ReferencedContainer = "container:PackagerTest.xcodeproj">
|
63
|
+
</BuildableReference>
|
64
|
+
</MacroExpansion>
|
65
|
+
</TestAction>
|
66
|
+
<LaunchAction
|
67
|
+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
68
|
+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
69
|
+
launchStyle = "0"
|
70
|
+
useCustomWorkingDirectory = "NO"
|
71
|
+
buildConfiguration = "Debug"
|
72
|
+
ignoresPersistentStateOnLaunch = "NO"
|
73
|
+
debugDocumentVersioning = "YES"
|
74
|
+
allowLocationSimulation = "YES">
|
75
|
+
<BuildableProductRunnable>
|
76
|
+
<BuildableReference
|
77
|
+
BuildableIdentifier = "primary"
|
78
|
+
BlueprintIdentifier = "A1DE56B419AA4A97000339C6"
|
79
|
+
BuildableName = "PackagerTest.app"
|
80
|
+
BlueprintName = "PackagerTest"
|
81
|
+
ReferencedContainer = "container:PackagerTest.xcodeproj">
|
82
|
+
</BuildableReference>
|
83
|
+
</BuildableProductRunnable>
|
84
|
+
<AdditionalOptions>
|
85
|
+
</AdditionalOptions>
|
86
|
+
</LaunchAction>
|
87
|
+
<ProfileAction
|
88
|
+
shouldUseLaunchSchemeArgsEnv = "YES"
|
89
|
+
savedToolIdentifier = ""
|
90
|
+
useCustomWorkingDirectory = "NO"
|
91
|
+
buildConfiguration = "Release"
|
92
|
+
debugDocumentVersioning = "YES">
|
93
|
+
<BuildableProductRunnable>
|
94
|
+
<BuildableReference
|
95
|
+
BuildableIdentifier = "primary"
|
96
|
+
BlueprintIdentifier = "A1DE56B419AA4A97000339C6"
|
97
|
+
BuildableName = "PackagerTest.app"
|
98
|
+
BlueprintName = "PackagerTest"
|
99
|
+
ReferencedContainer = "container:PackagerTest.xcodeproj">
|
100
|
+
</BuildableReference>
|
101
|
+
</BuildableProductRunnable>
|
102
|
+
</ProfileAction>
|
103
|
+
<AnalyzeAction
|
104
|
+
buildConfiguration = "Debug">
|
105
|
+
</AnalyzeAction>
|
106
|
+
<ArchiveAction
|
107
|
+
buildConfiguration = "Release"
|
108
|
+
revealArchiveInOrganizer = "YES">
|
109
|
+
</ArchiveAction>
|
110
|
+
</Scheme>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:PackagerTest.xcodeproj'/><FileRef location='group:Pods/Pods.xcodeproj'/></Workspace>
|
@@ -0,0 +1,22 @@
|
|
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>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>en</string>
|
7
|
+
<key>CFBundleExecutable</key>
|
8
|
+
<string>${EXECUTABLE_NAME}</string>
|
9
|
+
<key>CFBundleIdentifier</key>
|
10
|
+
<string>org.cocoapods.${PRODUCT_NAME:rfc1034identifier}</string>
|
11
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
12
|
+
<string>6.0</string>
|
13
|
+
<key>CFBundlePackageType</key>
|
14
|
+
<string>BNDL</string>
|
15
|
+
<key>CFBundleShortVersionString</key>
|
16
|
+
<string>1.0</string>
|
17
|
+
<key>CFBundleSignature</key>
|
18
|
+
<string>????</string>
|
19
|
+
<key>CFBundleVersion</key>
|
20
|
+
<string>1</string>
|
21
|
+
</dict>
|
22
|
+
</plist>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
//
|
2
|
+
// PackagerTestTests.m
|
3
|
+
// PackagerTestTests
|
4
|
+
//
|
5
|
+
// Created by Boris Bügling on 24/08/14.
|
6
|
+
// Copyright (c) 2014 CocoaPods. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <XCTest/XCTest.h>
|
10
|
+
|
11
|
+
@interface PackagerTestTests : XCTestCase
|
12
|
+
|
13
|
+
@end
|
14
|
+
|
15
|
+
@implementation PackagerTestTests
|
16
|
+
|
17
|
+
- (void)setUp
|
18
|
+
{
|
19
|
+
[super setUp];
|
20
|
+
// Put setup code here. This method is called before the invocation of each test method in the class.
|
21
|
+
}
|
22
|
+
|
23
|
+
- (void)tearDown
|
24
|
+
{
|
25
|
+
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
26
|
+
[super tearDown];
|
27
|
+
}
|
28
|
+
|
29
|
+
- (void)testExample
|
30
|
+
{
|
31
|
+
XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
|
32
|
+
}
|
33
|
+
|
34
|
+
@end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
PODS:
|
2
|
+
- AFNetworking (2.3.1):
|
3
|
+
- AFNetworking/NSURLConnection (= 2.3.1)
|
4
|
+
- AFNetworking/NSURLSession (= 2.3.1)
|
5
|
+
- AFNetworking/Reachability (= 2.3.1)
|
6
|
+
- AFNetworking/Security (= 2.3.1)
|
7
|
+
- AFNetworking/Serialization (= 2.3.1)
|
8
|
+
- AFNetworking/UIKit (= 2.3.1)
|
9
|
+
- AFNetworking/NSURLConnection (2.3.1):
|
10
|
+
- AFNetworking/Reachability
|
11
|
+
- AFNetworking/Security
|
12
|
+
- AFNetworking/Serialization
|
13
|
+
- AFNetworking/NSURLSession (2.3.1):
|
14
|
+
- AFNetworking/Reachability
|
15
|
+
- AFNetworking/Security
|
16
|
+
- AFNetworking/Serialization
|
17
|
+
- AFNetworking/Reachability (2.3.1)
|
18
|
+
- AFNetworking/Security (2.3.1)
|
19
|
+
- AFNetworking/Serialization (2.3.1)
|
20
|
+
- AFNetworking/UIKit (2.3.1):
|
21
|
+
- AFNetworking/NSURLConnection
|
22
|
+
- AFNetworking/NSURLSession
|
23
|
+
|
24
|
+
DEPENDENCIES:
|
25
|
+
- AFNetworking
|
26
|
+
|
27
|
+
SPEC CHECKSUMS:
|
28
|
+
AFNetworking: 05b9f6e3aa5ac45bc383b4bb108ef338080a26c7
|
29
|
+
|
30
|
+
PODFILE CHECKSUM: 5099f0db5f9f3c3a6167fc27cde4e08d429a30ec
|
31
|
+
|
32
|
+
COCOAPODS: 1.1.1
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Pod::Spec.new do |s|
|
2
|
+
s.name = "Weakly"
|
3
|
+
s.version = "0.1.0"
|
4
|
+
s.summary = "Yo"
|
5
|
+
s.homepage = "http://google.com"
|
6
|
+
s.license = "MIT"
|
7
|
+
s.author = { "Boris Bügling" => "boris@icculus.org" }
|
8
|
+
s.platform = :ios, '8.0'
|
9
|
+
s.source = { :git => "https://github.com/neonichu/CPDColors.git", :tag => s.version }
|
10
|
+
s.source_files = 'Code'
|
11
|
+
|
12
|
+
s.dependency 'PromiseKit', '~> 1.5'
|
13
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Pod::Spec.new do |s|
|
2
|
+
s.name = 'a'
|
3
|
+
s.version = '0.0.1'
|
4
|
+
s.summary = 'Objective-C implementation of the Nike+ API.'
|
5
|
+
s.homepage = 'https://github.com/neonichu/NikeKit'
|
6
|
+
s.license = {:type => 'MIT', :file => 'LICENSE'}
|
7
|
+
s.authors = { 'Boris Bügling' => 'http://buegling.com' }
|
8
|
+
s.source = { :git => 'https://github.com/neonichu/NikeKit.git', :tag => s.version.to_s }
|
9
|
+
s.platform = :ios, '8.0'
|
10
|
+
|
11
|
+
s.public_header_files = '*.h'
|
12
|
+
s.source_files = '*.{h,m}'
|
13
|
+
s.frameworks = 'Foundation'
|
14
|
+
s.requires_arc = true
|
15
|
+
|
16
|
+
s.dependency 'AFNetworking'
|
17
|
+
s.dependency 'ISO8601DateFormatter'
|
18
|
+
s.dependency 'KZPropertyMapper'
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Pod::Spec.new do |s|
|
2
|
+
s.name = 'foo-bar'
|
3
|
+
s.version = '0.0.1'
|
4
|
+
s.summary = 'Objective-C implementation of the Nike+ API.'
|
5
|
+
s.homepage = 'https://github.com/neonichu/NikeKit'
|
6
|
+
s.license = {:type => 'MIT', :file => 'LICENSE'}
|
7
|
+
s.authors = { 'Boris Bügling' => 'http://buegling.com' }
|
8
|
+
s.source = { :git => 'https://github.com/neonichu/NikeKit.git', :tag => s.version.to_s }
|
9
|
+
s.platform = :ios, '8.0'
|
10
|
+
|
11
|
+
s.public_header_files = '*.h'
|
12
|
+
s.source_files = '*.{h,m}'
|
13
|
+
s.frameworks = 'Foundation'
|
14
|
+
s.requires_arc = true
|
15
|
+
|
16
|
+
s.dependency 'AFNetworking'
|
17
|
+
s.dependency 'ISO8601DateFormatter'
|
18
|
+
s.dependency 'KZPropertyMapper'
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Pod::Spec.new do |s|
|
2
|
+
s.name = "layer-client-messaging-schema"
|
3
|
+
s.version = "20140715104949748"
|
4
|
+
s.summary = "Packages the database schema and migrations for layer-client-messaging-schema"
|
5
|
+
s.homepage = "http://github.com/layerhq"
|
6
|
+
s.author = { "Steven Jones" => "steven@layer.com" }
|
7
|
+
s.source = { :git => "https://github.com/neonichu/CPDColors.git",
|
8
|
+
:tag => "0.1.0" }
|
9
|
+
s.license = 'Commercial'
|
10
|
+
s.requires_arc = true
|
11
|
+
s.platform = :ios, '7.0'
|
12
|
+
s.resource_bundles = { 'layer-client-messaging-schema' => ['Code/**/*.h'] }
|
13
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
|
5
|
+
DONT_CODESIGN = true
|
6
|
+
|
7
|
+
describe Command::Spec::Package do
|
8
|
+
describe 'IntegrationTests' do
|
9
|
+
after do
|
10
|
+
Dir.glob("NikeKit-*").each { |dir| Pathname.new(dir).rmtree }
|
11
|
+
Dir.glob("LibraryDemo-*").each { |dir| Pathname.new(dir).rmtree }
|
12
|
+
FileUtils.rm_rf('spec/fixtures/PackagerTest/NikeKit.framework')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'Allow integration into project alongside CocoaPods' do
|
16
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
17
|
+
|
18
|
+
command = Command.parse(%w{ package spec/fixtures/NikeKit.podspec })
|
19
|
+
command.run
|
20
|
+
`cp -Rp NikeKit-*/ios/NikeKit.framework spec/fixtures/PackagerTest`
|
21
|
+
|
22
|
+
log = ''
|
23
|
+
|
24
|
+
Dir.chdir('spec/fixtures/PackagerTest') do
|
25
|
+
`pod install 2>&1`
|
26
|
+
log << `xcodebuild -workspace PackagerTest.xcworkspace -scheme PackagerTest -sdk iphonesimulator CODE_SIGN_IDENTITY=- 2>&1`
|
27
|
+
end
|
28
|
+
|
29
|
+
puts log if $?.exitstatus != 0
|
30
|
+
$?.exitstatus.should == 0
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'Allow integration of dynamic framework into project alongside CocoaPods' do
|
34
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
35
|
+
|
36
|
+
command = Command.parse(%w{ package spec/fixtures/NikeKit.podspec --dynamic })
|
37
|
+
command.run
|
38
|
+
`cp -Rp NikeKit-*/ios/NikeKit.framework spec/fixtures/PackagerTest`
|
39
|
+
|
40
|
+
log = ''
|
41
|
+
|
42
|
+
Dir.chdir('spec/fixtures/PackagerTest') do
|
43
|
+
`pod install 2>&1`
|
44
|
+
log << `xcodebuild -workspace PackagerTest.xcworkspace -scheme PackagerTest -sdk iphonesimulator CODE_SIGN_IDENTITY=- 2>&1`
|
45
|
+
end
|
46
|
+
|
47
|
+
puts log if $?.exitstatus != 0
|
48
|
+
$?.exitstatus.should == 0
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'allows integration of a library without dependencies' do
|
52
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
53
|
+
|
54
|
+
command = Command.parse(%w{ package spec/fixtures/LibraryDemo.podspec })
|
55
|
+
command.run
|
56
|
+
|
57
|
+
log = ''
|
58
|
+
|
59
|
+
Dir.chdir('spec/fixtures/LibraryConsumerDemo') do
|
60
|
+
`pod install 2>&1`
|
61
|
+
log << `xcodebuild -workspace LibraryConsumer.xcworkspace -scheme LibraryConsumer 2>&1`
|
62
|
+
log << `xcodebuild -sdk iphonesimulator -workspace LibraryConsumer.xcworkspace -scheme LibraryConsumer 2>&1`
|
63
|
+
end
|
64
|
+
|
65
|
+
puts log if $?.exitstatus != 0
|
66
|
+
$?.exitstatus.should == 0
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
describe Command::Package do
|
5
|
+
after do
|
6
|
+
Dir.glob("Pods").each { |dir| Pathname.new(dir).rmtree }
|
7
|
+
end
|
8
|
+
|
9
|
+
it "uses additional spec repos passed on the command line" do
|
10
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
11
|
+
nil::NilClass.any_instance.stubs(:install!)
|
12
|
+
Installer.expects(:new).with {
|
13
|
+
|sandbox, podfile| podfile.sources == ['foo', 'bar']
|
14
|
+
}
|
15
|
+
|
16
|
+
command = Command.parse(%w{ package spec/fixtures/KFData.podspec --spec-sources=foo,bar})
|
17
|
+
command.send(:install_pod, :osx, nil)
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
it "uses only the master repo if no spec repos were passed" do
|
22
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
23
|
+
nil::NilClass.any_instance.stubs(:install!)
|
24
|
+
Installer.expects(:new).with {
|
25
|
+
|sandbox, podfile| podfile.sources == ['https://github.com/CocoaPods/Specs.git']
|
26
|
+
}
|
27
|
+
|
28
|
+
command = Command.parse(%w{ package spec/fixtures/KFData.podspec })
|
29
|
+
command.send(:install_pod, :osx, nil)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "creates seperate static and dynamic target if dynamic is passed" do
|
33
|
+
source_dir = Dir.pwd
|
34
|
+
|
35
|
+
Pod::Config.instance.sources_manager.stubs(:search).returns(nil)
|
36
|
+
|
37
|
+
command = Command.parse(%w{ package spec/fixtures/NikeKit.podspec -dynamic})
|
38
|
+
t, w = command.send(:create_working_directory)
|
39
|
+
|
40
|
+
command.config.installation_root = Pathname.new(w)
|
41
|
+
command.config.sandbox_root = 'Pods'
|
42
|
+
|
43
|
+
static_sandbox = command.send(:build_static_sandbox, true)
|
44
|
+
static_installer = command.send(:install_pod, :ios, static_sandbox)
|
45
|
+
|
46
|
+
dynamic_sandbox = command.send(:build_dynamic_sandbox, static_sandbox, static_installer)
|
47
|
+
command.send(:install_dynamic_pod, dynamic_sandbox, static_sandbox, static_installer)
|
48
|
+
|
49
|
+
static_sandbox_dir = Dir.new(Dir.pwd << "/Pods/Static")
|
50
|
+
dynamic_sandbox_dir = Dir.new(Dir.pwd << "/Pods/Dynamic")
|
51
|
+
|
52
|
+
static_sandbox_dir.to_s.should.not.be.empty
|
53
|
+
dynamic_sandbox_dir.to_s.should.not.be.empty
|
54
|
+
|
55
|
+
Dir.chdir(source_dir)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
3
|
+
|
4
|
+
require 'pathname'
|
5
|
+
ROOT = Pathname.new(File.expand_path('../../', __FILE__))
|
6
|
+
$:.unshift((ROOT + 'lib').to_s)
|
7
|
+
$:.unshift((ROOT + 'spec').to_s)
|
8
|
+
|
9
|
+
require 'bundler/setup'
|
10
|
+
require 'bacon'
|
11
|
+
require 'mocha-on-bacon'
|
12
|
+
require 'pretty_bacon'
|
13
|
+
require 'cocoapods'
|
14
|
+
|
15
|
+
require 'cocoapods_plugin'
|
16
|
+
|
17
|
+
#-----------------------------------------------------------------------------#
|
18
|
+
|
19
|
+
module Pod
|
20
|
+
|
21
|
+
# Disable the wrapping so the output is deterministic in the tests.
|
22
|
+
#
|
23
|
+
UI.disable_wrap = true
|
24
|
+
|
25
|
+
# Redirects the messages to an internal store.
|
26
|
+
#
|
27
|
+
module UI
|
28
|
+
@output = ''
|
29
|
+
@warnings = ''
|
30
|
+
|
31
|
+
class << self
|
32
|
+
attr_accessor :output
|
33
|
+
attr_accessor :warnings
|
34
|
+
|
35
|
+
def puts(message = '')
|
36
|
+
@output << "#{message}\n"
|
37
|
+
end
|
38
|
+
|
39
|
+
def warn(message = '', actions = [])
|
40
|
+
@warnings << "#{message}\n"
|
41
|
+
end
|
42
|
+
|
43
|
+
def print(message)
|
44
|
+
@output << message
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
#-----------------------------------------------------------------------------#
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
describe Builder do
|
5
|
+
describe 'Xcodebuild command' do
|
6
|
+
describe 'compiler flags' do
|
7
|
+
before do
|
8
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
9
|
+
@builder = Builder.new(nil, nil, nil, nil, @spec, nil, nil, nil, nil, nil, nil)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "includes proper compiler flags for iOS" do
|
13
|
+
@builder.expects(:xcodebuild).with("GCC_PREPROCESSOR_DEFINITIONS='$(inherited) PodsDummy_Pods_Builder=PodsDummy_PodPackage_Builder' -DBASE_FLAG -DIOS_FLAG", "ARCHS='x86_64 i386 arm64 armv7 armv7s' OTHER_CFLAGS='-fembed-bitcode -Qunused-arguments'").returns(nil)
|
14
|
+
@builder.send(:compile, Platform.new(:ios))
|
15
|
+
end
|
16
|
+
|
17
|
+
it "includes proper compiler flags for OSX" do
|
18
|
+
@builder.expects(:xcodebuild).with("GCC_PREPROCESSOR_DEFINITIONS='$(inherited) PodsDummy_Pods_Builder=PodsDummy_PodPackage_Builder' -DBASE_FLAG -DOSX_FLAG", nil).returns(nil)
|
19
|
+
@builder.send(:compile, Platform.new(:osx))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'on build failure' do
|
24
|
+
before do
|
25
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
26
|
+
@builder = Builder.new(nil, nil, nil, nil, @spec, nil, nil, nil, nil, nil, nil)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'dumps report and terminates' do
|
30
|
+
UI::BuildFailedReport.expects(:report).returns(nil)
|
31
|
+
|
32
|
+
should.raise SystemExit do
|
33
|
+
# TODO: check that it dumps report
|
34
|
+
@builder.send(:compile, Platform.new(:ios))
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
describe SpecBuilder do
|
5
|
+
def compare_attributes(first_spec, second_spec, attribute_name)
|
6
|
+
first_spec.attributes_hash[attribute_name].should ==
|
7
|
+
second_spec.attributes_hash[attribute_name]
|
8
|
+
|
9
|
+
%w(ios osx).each do |platform|
|
10
|
+
first_spec.attributes_hash[platform][attribute_name].should ==
|
11
|
+
second_spec.attributes_hash[platform][attribute_name]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def specification_from_builder(builder)
|
16
|
+
spec_string = builder.spec_metadata
|
17
|
+
spec_string += builder.spec_platform(Platform.ios)
|
18
|
+
spec_string += builder.spec_platform(Platform.osx)
|
19
|
+
spec_string += builder.spec_close
|
20
|
+
|
21
|
+
return Specification.from_string(spec_string, 'Builder.podspec')
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'Preserve attributes from source specification' do
|
25
|
+
before do
|
26
|
+
@spec = Specification.from_file('spec/fixtures/Builder.podspec')
|
27
|
+
@builder = SpecBuilder.new(@spec, nil, false, nil)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "preserves platform.frameworks" do
|
31
|
+
spec = specification_from_builder(@builder)
|
32
|
+
compare_attributes(spec, @spec, 'frameworks')
|
33
|
+
end
|
34
|
+
|
35
|
+
it "preserves platform.weak_frameworks" do
|
36
|
+
spec = specification_from_builder(@builder)
|
37
|
+
compare_attributes(spec, @spec, 'weak_frameworks')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "preserves platform.libraries" do
|
41
|
+
spec = specification_from_builder(@builder)
|
42
|
+
compare_attributes(spec, @spec, 'libraries')
|
43
|
+
end
|
44
|
+
|
45
|
+
it "preserves platform.requires_arc" do
|
46
|
+
spec = specification_from_builder(@builder)
|
47
|
+
compare_attributes(spec, @spec, 'requires_arc')
|
48
|
+
end
|
49
|
+
|
50
|
+
it "preserves platform.deployment_target" do
|
51
|
+
spec = specification_from_builder(@builder)
|
52
|
+
compare_attributes(spec, @spec, 'deployment_target')
|
53
|
+
end
|
54
|
+
|
55
|
+
it "preserves platform.xcconfig" do
|
56
|
+
spec = specification_from_builder(@builder)
|
57
|
+
compare_attributes(spec, @spec, 'xcconfig')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module UserInterface
|
5
|
+
describe BuildFailedReport do
|
6
|
+
it 'should format a report correctly' do
|
7
|
+
UI::BuildFailedReport.report('a', ['b']).should == "Build command failed: a\nOutput:\n b\n"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|