【问题标题】:Does Xcode build CocoaPods every time I build my project?每次我构建项目时,Xcode 都会构建 CocoaPods 吗?
【发布时间】:2021-10-26 23:37:10
【问题描述】:

所以我有一个包含大量代码的项目,其中一些是托管在 GitHub 上的开源项目的一部分,我正在考虑删除该代码并使用 CocoaPods 为我导入和管理该代码。

我的问题是,这对项目构建时间有帮助吗?每次我构建项目时,Xcode 都会构建完整的工作区吗?

Xcode 具体何时构建 pod?

【问题讨论】:

  • Cocoapods 会生成一个名为 Pods 的 Xcode 项目,其中包含与您声明的每个依赖项相对应的各种目标。然后它会生成一个工作区,其中包含 Pods 项目以及您的应用程序项目。您的项目将有效地构建 Pods 中的一些目标。文物像往常一样被缓存。第二次和第三次重新构建项目只会编译更改的代码。
  • 这并不完全正确。安装 pod 时,cocoapods 添加构建阶段,通过运行 "${SRCROOT}/Pods/Target Support Files/Pods-ProjectName/Pods-ProjectName-frameworks.sh""${SRCROOT}/Pods/Target Support Files/Pods-ProjectName/Pods-ProjectName-resources.sh" 复制 pod 资源,每次都需要几秒钟。因此,即使它可能不会重新编译某些代码,它也会将时间花在未修改的项目上
  • @Guig 是的 cocoapods 会影响建造时间,由于这些原因,我们很快就会搬到迦太基
  • Carthage 更快,但不支持所有框架。我很想转换为 carthage,但有些框架还没有准备好
  • @Mr.Me 我正在使用 Cocoapods 和 use_frameworks!编译时间让我发疯(我得到了 7-10 分钟,现在有了迦太基,我得到了几秒钟)。我目前只留下了 3 个不支持 Carthage 的框架,编译时间不到 20 秒。

标签: xcode cocoapods dependency-management


【解决方案1】:

我也遇到过类似的问题并开发了自己的实用程序?Rugby

你可以这样使用它:

pod install && rugby

您所有的 pod 都将被移动到缓存中。这是一个简单快捷的解决方案。
第二次,? Rugby 将只编译更改的 pod。
如果您有任何问题,请随时与我联系。

【讨论】:

    【解决方案2】:

    Pod 将被重新编译:

    • 当您执行pod install/update
    • 当你做一个干净的构建时

    大多数时候,pod 不会重新编译。

    您可以使用以下方法加速干净的构建 pod:

    https://github.com/leavez/cocoapods-binary

    【讨论】:

    • 我已经习惯了清洁+跑步,我感到很沮丧。然后我读了你的答案,“灯泡”每次都不清洁哈哈
    猜你喜欢
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2021-05-11
    • 2019-03-02
    • 1970-01-01
    相关资源
    最近更新 更多