我有一个工作区包含3个项目(Project1,Project2),其中Project1包含2个目标(Target1,Target2),而Project2包含1个目标(target3)。 目录结构如下图所示。
如何设置Podfile,以便每个目标都有pod'RestKit'?
我不知道'link_with'和 请给我写podfile并向我解释,非常感谢你。
MyApp
|
+-- MyApp.xcworkspace
|
+-- Project1
| |
| +-- Target1.xcodeproj
| +-- (source code)
| |
| +-- Target2
| +-- (source code)
|
|
+-- Project2
| |
| +-- Target3.xcodeproj
| +-- (source code)
|
+-- Target3
|
+-- (source code)
答案 0 :(得分:30)
此Podfile尚未经过验证,但可能会向您展示多个项目和目标设置的基本概念。
workspace 'MyApp'
xcodeproj 'Project1/Project1.xcodeproj'
xcodeproj 'Project2/Project2.xcodeproj'
target :Target1 do
platform :ios, '6.0'
pod 'RestKit'
xcodeproj 'Project1/Project1.xcodeproj'
end
target :Target2 do
platform :ios, '6.0'
pod 'RestKit'
xcodeproj 'Project2/Project2.xcodeproj'
end
target :Target3 do
platform :ios, '6.0'
pod 'RestKit'
xcodeproj 'Project1/Project1.xcodeproj'
end
第一行指定您的工作区。查看http://guides.cocoapods.org/syntax/podfile.html#workspace
第二行和第三行指定您的xcodeprojs。 http://guides.cocoapods.org/syntax/podfile.html#xcodeproj
然后,逐个指定目标的pod依赖项。
答案 1 :(得分:4)
以下是来自https://github.com/dblock/ARASCIISwizzle的工作示例:
workspace 'ARASCIISwizzle'
pod 'ARASCIISwizzle', :path => 'ARASCIISwizzle.podspec'
xcodeproj 'Demo.xcodeproj'
target 'Demo' do
pod 'FLKAutoLayout', '~> 0.1.1'
xcodeproj 'Demo.xcodeproj'
end
target 'IntegrationTests' do
pod 'Specta', '~> 0.2.1'
pod 'Expecta', '~> 0.2.3'
pod 'FBSnapshotTestCase', :head
pod 'EXPMatchers+FBSnapshotTest', :head
xcodeproj 'Demo.xcodeproj'
end
target 'Tests' do
pod 'Specta', '~> 0.2.1'
pod 'Expecta', '~> 0.2.3'
pod 'FBSnapshotTestCase', :head
pod 'EXPMatchers+FBSnapshotTest', :head
pod 'OCMock', '~> 2.2.3'
xcodeproj 'Tests.xcodeproj'
end
请注意https://github.com/CocoaPods/CocoaPods/issues/1922中的讨论,CocoaPods团队正在重新设计这个DSL,以减少倒退。
答案 2 :(得分:0)
在当前版本的CocoaPods中,xcodeproj
替换为project
。
给出项目结构:
MyApp
├- MyApp.xcworkspace
├- Project1
├- Target1.xcodeproj
├- Target2.xcodeproj
├- Project2
├- Target3.xcodeproj
Podfile
看起来像这样:
workspace 'MyApp'
project 'Project1/Target1.xcodeproj'
project 'Project1/Target2.xcodeproj'
project 'Project2/Target3.xcodeproj'
target 'Target1' do
project 'Project1/Target1.xcodeproj'
pod 'RestKit'
end
target 'Target2' do
project 'Project1/Target2.xcodeproj'
pod 'RestKit'
end
target 'Target3' do
project 'Project2/Target3.xcodeproj'
pod 'RestKit'
end