如何在 Xcode 中启用构建时间?

Posted

技术标签:

【中文标题】如何在 Xcode 中启用构建时间?【英文标题】:How to enable build timing in Xcode? 【发布时间】:2010-11-04 21:40:15 【问题描述】:

我想知道我的项目构建需要多长时间,例如通过在构建窗格中显示它。 这个选项在 Xcode 中的某个地方可用吗?

谢谢。

【问题讨论】:

【参考方案1】:

在终端输入:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

持续时间在构建后显示在活动查看器中,旁边是“成功”消息。

如果您正在运行应用程序,在您看到持续时间之前,状态将被运行状态替换。

这替换了旧版本 Xcode 中使用的条目:

默认写com.apple.Xcode ShowBuildOperationDuration YES

在您输入此命令之前,可能需要关闭 Xcode。持续时间应显示在项目窗口的左下方。

来自 Xcode 开发人员的评论:“与所有未记录的用户默认值一样,这是不受支持的,假定(但不保证)准确,并且不能保证在未来的版本中有效。”

【讨论】:

这也适用于 Xcode 6。构建时间显示在窗口标题栏下方。 @bobobobo Xcode 6.1.1 中时间出现的截图 i.imgur.com/6KkYdls.png"> 有什么方法可以将它打印到文件中? 确认这在 Xcode 7.1.1 中适用于我(使用较新的 com.apple.dt.Xcode 如果其他人想知道活动查看器是 xcode 中间顶部的窗口,它显示当前正在构建的内容以及进程的进度。【参考方案2】:

在 Xcode 10 中,您现在可以使用 Timing Summary 功能查看构建时间的详细分类。

产品->执行操作->使用时序摘要构建

这将显示您的每个目标构建时间和整个项目构建时间。您可以使用这些数据进行大量分析,构建时间将取决于您的硬件。如果您想了解更多信息,请查看 WWDC 2018 的 Building Faster in Xcode。

但是,Xcode 默认会跟踪您的所有构建,您可以通过转到其报告导航器来检查它们的时间和日志。

Build Logs within Report Navigator

【讨论】:

我无法从 XCode 中保存构建日志和计时。我只能在 XCode 输出中看到时间【参考方案3】:

不,但您可以使用命令行。 cd 到你的项目目录并输入

time xcodebuild

【讨论】:

【参考方案4】:

我在Build Phases 中用Run Scripts 解决了这个问题

我在构建的起点添加了一个运行脚本:

echo $(date +%s) > ../build_start_time

最后一个:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

现在我可以在 Build Log -> All Messages 中看到时间

【讨论】:

在 Xcode 6.4 中,它不允许您在任何“库存”构建阶段之前拖动运行脚本构建阶段。如果您创建了一堆额外的构建阶段,它会让您在它们之间重新排序,但似乎所有“库存”构建阶段都必须先出现。你找到解决办法了吗?【参考方案5】:

Xcode 10 之后

如果您从命令行构建,请使用 -showBuildTimingSummary 查看构建时间摘要。
xcodebuild -showBuildTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
如果你使用 Xcode,Product->Perform Action->Build With Timing Summary。并在 Xcode 构建日志中查看构建时间摘要。

【讨论】:

现在正确的命令行参数是-showBuildTimingSummary

以上是关于如何在 Xcode 中启用构建时间?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 4.2 中启用崩溃日志符号化

如何在 Lion 下的 Xcode 4.1 Instruments 中启用 NSZombie?

如何在 Xcode 7 中启用_BITCODE?

如何在 xcode 中启用 ios 键盘返回键功能?

如何在 xcode 中重新启用 CoreLocation 提示?

如何在 Xcode 7 中使用代码覆盖率?