如何为我的Xcode项目在podfile中指定多个目标和项目?

时间:2013-12-31 07:31:54

标签: xcode cocoapods

我有一个工作区包含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)

3 个答案:

答案 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