如何在 Xcode 实现构建时间安排?

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

谢谢。

31696 次浏览

不,但是您可以使用命令 line. cd 到您的项目目录并键入

time xcodebuild

在终端输入:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

持续时间显示在构建之后的活动查看器中,与“成功”消息一起。

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

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

默认写 com.apple. Xcode ShowBuildOperationDurationYES

Xcode may need to be closed before you enter this command. Durations should appear at the bottom left of the project window.

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

我用 Build Phases中的 Run Script解决了这个问题

I have added one Run Script at start point of the build:

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

最后一个:

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

现在我可以看到时间在建立日志-> 所有消息

在 Xcode 10中,您现在可以使用 TimingSummary 特性看到构建时间的大分解。

Product->Perform Action->Build With Timing Summary

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

但是,Xcode 默认情况下会跟踪所有构建,您可以通过访问它们的报表导航器来检查它们的时间和日志。

在报表导航器中生成日志

在 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
  • If you use Xcode, Product->Perform Action->Build With Timing Summary. And see building time summary in the Xcode building log.