如何强制 CocoaPods 使用 Facebook 和 Parse SDK 的二进制版本?
Posted
技术标签:
【中文标题】如何强制 CocoaPods 使用 Facebook 和 Parse SDK 的二进制版本?【英文标题】:How can I force CocoaPods to use binary versions of Facebook and Parse SDKs? 【发布时间】:2015-11-21 10:42:16 【问题描述】:我有一个使用 Cocoapods 的大型项目,其编译时间 > 60 秒。大部分编译时间用于编译第三方 SDK:Facebook
和 Parse
。这是因为它们包含最多的源文件。
我发现自己经常运行pod install
,尤其是当我想重构我的应用程序并维护创建测试应用程序目标以及需要第三方依赖项的单元测试目标时。
在pod install
之后构建项目会导致重新构建所有 SDK,即使它们没有任何变化。如果重复执行,这会在重构过程中浪费大量时间。
如何强制 Cocoapods 使用我已经下载到磁盘上的那些依赖项的二进制框架,以避免编译?
【问题讨论】:
查看此链接以最大限度地减少重新编译所花费的时间。原因是因为 pch 显然在pod install
期间被触及。 github.com/CocoaPods/CocoaPods/issues/3991
【参考方案1】:
您可以使用CocoaPods Rome 生成可以手动安装的二进制框架。
【讨论】:
有趣。以这种方式使用动态框架是否会帮助我解决如下所述的菱形依赖问题:***.com/questions/27727455/…? 我想是的,但恐怕我不是这方面的专家。动态框架应允许在运行时中具有相同符号的多个类。 这和CocoaPods Binary
有什么不同?【参考方案2】:
您可以在pod install
期间使用CocoaPods Binary 预编译您的Pod。
【讨论】:
【参考方案3】:我遇到过类似的问题并开发了自己的实用程序?Rugby。 在当前版本中,Rugby 可以缓存所有(或只是其中一些)pod 依赖项,并从 Pods 项目中删除它们的目标。
另外,? Rugby 不会改变 Podfile。您可以使用 pod install && rugby
来处理缓存,或者只使用 pod install 来处理源代码。 git没有变化。
Rugby 是使用 Swift 编写的,我经常支持这个开源项目。
最好的问候
【讨论】:
以上是关于如何强制 CocoaPods 使用 Facebook 和 Parse SDK 的二进制版本?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CocoaPods 将智能生活 App SDK iOS 版快速集成到项目中