我有一个巨大的 Xcode 项目,使用 CocoaPods有超过 150 个依赖项。没有 Xcode 构建缓存的索引时间和构建时间是一场噩梦,Xcode 的响应速度较慢。所有这些原因都阻碍了我们的有效发展。所以我们要使用 Pre-compiling在我们的项目中。
这个CocoaPods插件主要做的是:
- 下载源代码到
Pods/_prebuild/xxx
文件夹 - 在 temperate 文件夹
Pods/build
文件夹中构建静态框架 - 生成静态框架,最后存放在
Pods/_prebuild/generatedFrameworks
文件夹中 - 构建完成后,删除
Pods/_prebuild/xxx
中的源代码,在Pods
文件夹中生成xxx
文件夹,其中包含指向Pods/_prebuild/generatedFrameworks
文件夹中的static framework
的符号链接(symbolic link)。此外,如果您在Podfile
中使用keep_source_code_for_prebuilt_frameworks
,则可以将源代码保留在Pods/_prebuild/
文件夹中。
但是,一旦依赖被转换成二进制文件。开发者在开发时调试难度很大。
一个天真的解决方案是使用
pod "ExpectoPatronum", :binary => true | false
并再次执行pod install
。cocoapods-binary
提供了这个选项来确定这个 pod 应该是源代码还是应该转换成二进制。这个插件好像来自 unicorn ,Mei Tuan .并且,他们没有使用解决方案 1 在源代码和二进制文件之间切换,而是使用更棘手的方法将二进制文件转换为源代码。
目前,我正在尝试寻找更多在 CocoaPods 中使用预编译时在源代码和二进制文件之间切换的解决方案。你想阐明它吗?谢谢。
最佳答案
我遇到过类似的问题并开发了自己的实用程序🏈 Rugby .
在当前版本中,Rugby
可以缓存所有远程 pod 依赖项,并将它们的目标从 Pods
项目中移除。
此外,Rugby
不会更改 Podfile
。您可以使用 pod install && rugby
来处理缓存,或者只使用 pod install
来处理源。
关于ios - 无论如何在 Cocoapods 中使用预编译时在源代码和二进制文件之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62688633/