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

19

我有一个工作区,其中包含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个回答

31

这个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依赖项。

我已经验证过了。它可以工作,只需要稍微修改一下:"target:ALplayCocoapod do"而不是"target: ALplayCocoapod do",不需要空格。此外,我的目录结构示例是错误的。一个项目只有一个xcodeproj,其中可能包含多个目标。非常感谢,您的解释甚至比官方的更好。 - allenlinli
对我来说,解决问题的方法是在“target do ... end”部分中添加“xcodeproj”行。 - Echelon

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
在当前版本的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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接