如何在使用xcode构建时显示编译器输出或自定义构建步骤输出?

问题描述:

如何从编译器的自定义构建步骤(执行前或执行后)看到输出?如何在使用xcode构建时显示编译器输出或自定义构建步骤输出?

执行前输出至少出现在system.log中,并且在Console.app中可见。

+0

+1。我一直在看日志导航器,但无法看到我的回显被输出。然后我检查了Console.app,现在我看到它们在那里列出。所以Console.app的作品。 – neoneye 2011-07-16 09:41:25

+5

xcode 5.1 - 我没有在那里看到我的回声。它改变了还是我的预执行脚本没有实际运行? – OrangeDog 2014-05-19 10:22:31

+2

“checked Console.app”是什么意思?我似乎无法找到我的方案预行动脚本输出 – hunteros 2014-10-08 21:47:18

您将在日志导航器中发现(并且您可以在构建期间观看)完整的构建输出。这是Run and Build按钮下方小图标的最右侧图标。

+3

谢谢你给我这个暗示,唯一的问题是,我没有看到任何reffering到诉讼前或构建后的行动。我在shell脚本中加入了'echo',但我没有看到它。 – sorin 2011-03-24 16:44:51

+0

感谢您发布此信息。我试图找到项目构建结果阿拉Xcode 3,这是关于尽可能接近你。 – TahoeWolverine 2011-05-25 20:28:52

+0

日志导航器输出不包含Scheme“运行脚本”预执行的输出。正如Jonah指出的,它可以在Console.app – daver 2012-08-24 06:14:18

根据我在这里的答案(Is it normal for Xcode not to detect if a pre-action failed?)这是一个在开发论坛讨论的问题。操作前/后操作脚本非零状态似乎没有影响,输出似乎也不会将其记录到任何日志中。

+0

我无法在devforum上找到关于此的任何讨论,但我添加了一个新的解决方案https://devforums.apple.com/message/427106#42​​7106 – sorin 2011-05-03 08:05:30

+0

论坛已移动,并且我没有看到任何讨论新论坛中的这个话题。 https://forums.developer.apple.com/search.jspa?q=xcode+logo – AnneTheAgile 2015-09-03 19:40:42

于是我想出了一个办法既:从

  1. 显示输出预构建脚本
  2. 停止生成脚本生成错误

的情况下,基本概念是将构建事件的所有输出发送到各种文件,然后将该输出作为目标构建脚本的一部分(它显示它的输出并可以退出或取消)。

警告黑客接近


设置一个构建脚本自动地处理抽输出到2个不同的文件... 1的常规日志,一个用于标准错误。或者使用mine(我在我的博客上公布,因为它似乎堆栈溢出代码检测很烂的shell脚本。)

那么你应该调用脚本在方案预生成阶段,像这样:

"${PATH_TO_LOG_SCRIPT}/log_prebuild.sh" "${PATH_TO_PREBUILD_SCRIPT_TO_EXECUTE}/scriptToExecute.sh" 2> "${SOURCE_ROOT}/build/prebuild_error.log" 

然后,你需要在目标构建阶段的编译阶段之前设置脚本,检查这些文件的存在,将它们转储到日志中,并在出现故障时中断构建。或者你可以再次使用mine

然后建立和手指交叉:)

编辑:如下面这个答案只适用于构建阶段脚本注释中指出,不预动作和后动作脚本。


在Xcode 8中,您需要在“Navigator - > Report Navigator”中选择最新版本。在主要区域中,您将能够看到包含输出的完整构建日志。

Navigator selection

下面是一个简单的“Hello world”回声

Log

+4

这仅适用于添加到生成阶段的脚本,该问题特别要求预先操作和后期操作脚本不起作用。 – Pranshu 2017-02-09 11:21:06