iphone - 何时使用 Xcode 分布式构建功能

标签 iphone xcode build compilation distributed

我在一个小型 iPhone 开发团队工作,在我们的办公室里,我们在任何时候至少有 4 个 XCode 副本在网络上运行。考虑让每个人都运行它。

我们使用标准 WIFI 交换机联网,因此网络速度和延迟不如有线网络...

只是想知道,使用分布式构建是否有任何实时 yield ?一旦它通过网络来回传递相关数据。至少对于相对较小的项目来说是这样。

最佳答案

这取决于您的项目、其依赖项以及必须传输的数据量。

15-20秒并不可怕。当然,总体而言还有更多工作要做。对于每个人来说,将其分配给一台速度非常快的 Mac Pro 可能是一个好主意,如果您使用的是双核,而不是彼此分配(未提供该信息)。

就项目配置而言:如果您的项目中有一堆依赖库,那么禁用预编译头可能会有所帮助。等式的大部分内容是依赖项的平均数量以及要生成的对象的数量。

在 15-20 秒内,它将帮助许多开发人员进行编写,以便他们在外包之前优化构建时间。如果只有几分钟,那么您可能想直接跳到具有 8 或 12 核的分布式构建。

小项目构建缓慢的一个容易被忽视的方面:禁用每个构建的静态分析,然后每隔两小时手动运行一次,然后修复每个问题。

否则,您的项目可能会被分成更小的项目/库。您很可能不会总是编辑相同的依赖项。

假设编译、链接等是此时花费时间的地方:其余大部分都属于构建 C 和 C++ 程序所涉及的典型问题。尽量减少依赖并包含图表。实际上用 objc 很容易完成;由于大部分接口(interface)都使用 objc 类型,因此您可以使用转发。

如果您的库很小(例如生成的对象少于 50 个),那么您也可以通过不使用预编译头来获得加速。如果一切已经取决于您对 pch 包含的 12 个系统框架的包含...那么请在下一个项目中尝试。

当然,您可以尝试计时一次干净的重建、使用生成的 pch 文件进行构建以及几次增量构建,以便得出结论。

关于iphone - 何时使用 Xcode 分布式构建功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917245/

相关文章:

ios - 为参数 "invalid value"提供了一个 'appIdName'?

Xcode:构建失败,但没有错误消息

c# - 在源代码控制中没有 bin 文件夹的情况下,在引用项目中使用新类构建失败,但成功了,为什么?

iphone - 应用程序在启动时仅由一名用户崩溃

iphone - 在 objective-C 的字典中替换 nil 的使用

ios - 3D Touch Peek - 背景模糊颜色

android - 为 android 构建时出现 Qt 错误

iphone - 获取文档目录内容时无法省略 @".DS_Store"文件

ios - 在运行时获取 iPhone 应用程序的产品名称?

c# - .gitlab-ci.yml for C# 使用 Docker image mono