3

我的设置:

  • Dropbox文件夹内的Xcode项目
  • 安装了 Cocoapods
  • Parse 在我的 podfile 中,它需要 Bolts 框架

每次我从另一台计算机编辑工作区后加载工作区时,Xcode 都会抱怨类“BFAppLink”(来自 Bolts 框架)的重复接口定义。这由“pods update”修复。

有任何想法吗?

4

3 回答 3

9

我在 Dropbox 和 Parse pod 上遇到了同样的问题。我调查并发现 CocoaPods 出于某些原因在 ./Pods/Headers 中保留指向您的标头的符号链接,Dropbox 实际上会复制另一台计算机上的文件,而不仅仅是复制符号链接。

当您在第二台计算机上编译时,有 .h 文件的 2 个副本,因此 Xcode 会抱怨并且在您运行 pod install 之前不会编译(这将用符号链接替换重复的 .h 文件,就像它应该的那样)。但是随后编译好的其他计算机将用头文件的副本替换它们的符号链接。

我发现的方法是将 /Pods/Headers 添加到 Dropbox 中的选择性同步中,这样它们就不会同步。然后在所有计算机上运行 pod install ,它们应该能够编译。

我希望这有帮助

于 2015-03-17T15:14:53.083 回答
3

pod 更新很可能正在重写您的 Xcode 项目并消除重复的文件导入。除了将项目存储在 Dropbox 上之外,您能否将其存储在像 git 这样的实际 SCM 系统中,或者使用像 GitHub 或 BitBucket 这样的服务?

于 2015-01-07T21:59:09.740 回答
0

这里有一些清单可以解决您的问题:

  1. 您的整个项目是否被复制到 Dropbox 中?您的/Pods目录是否project.xcworkspace被复制了?

如果你复制整个内容,例如,压缩整个项目并在新机器上解压缩,你应该可以在任何没有安装 cocoapods 的机器上运行项目。

  1. 螺栓框架是通过 cocoapods 添加的吗?如果您对框架有手动参考,则路径可能因版本而异。

  2. 您是否在所有机器上使用相同版本的 cocoapods?

机器之间不同版本的 cocoapods 可能会导致诸如您观察到的问题。

$ pod --version

正如 jshier 提到的,考虑使用 bitbucket 或 github 作为版本控制。SourceTree 是一个很好的 git 客户端。

于 2015-01-07T22:23:17.037 回答