Xcode - Cocoapods如何编译pods?

时间:2016-11-02 20:02:45

标签: ios xcode cocoapods

我有一个用cocoapods构建的xcworkspace(pod install)。我能解决xCode如何知道在构建MyProject时它还必须构建Pods项目的事情吗?

假设:

在MyProject构建阶段的主要目标" Link Binary with Libraries"我可以看到" Pods_MyProject.framework"它指的是Pods(项目)Pods-MyProject目标构建的.framework(它是否正确?)。这个目标有他的目标依赖关系"所有的豆荚。

但我仍然不理解两件事

  1. Xcode如何知道我在构建MyProject时必须首先构建Pods-MyProject? (MyProject主要目标中没有任何内容" Target Dependencies" section)
  2. 以下是" MyProject"的构建阶段标签。 (它的真名是" clicktube"):

    enter image description here

    1. " Pods_MyProject.framework"包含所有的pod,而它的" Link Binary with Libraries"部分几乎是空的?
    2. The Pods-MyProject" Link with Libraries"部分:

      enter image description here

1 个答案:

答案 0 :(得分:1)

这是有趣的事情:

https://developer.apple.com/library/content/featuredarticles/XcodeConcepts/Concept-Workspace.html#//apple_ref/doc/uid/TP40009328-CH7-SW1

  

Xcode检查构建目录中的文件以发现隐式   依赖。例如,如果一个项目包含在工作区中   构建一个由同一个项目链接的库   工作区,Xcode在构建之前自动构建库   其他项目,即使构建配置没有这个   依赖显式。您可以使用覆盖此类隐式依赖项   必要时显式构建设置。对于显式依赖,您   必须创建项目参考。

有两种类型的依赖:显式和隐式。您可以在" Target dependencies"中指定显式的。 XCode通过查看"链接二进制文件库和#34;来发现隐式依赖项。然后它决定项目的建立顺序。

  

" Pods_MyProject.framework"包含所有的pod   "将Binary与Libraries联系起来"部分几乎是空的?

如果您查看Pods.xcodeproj,那么您安装的每个框架都有一个目标'通过podfile。然后是Pods_MyProject.framework目标,它明确依赖于所有这些框架。