如何从自定义构建步骤(行动前或行动后)中看到编译器的输出?
答案 0 :(得分:26)
您可以在Log Navigator中找到(并且可以在构建期间观察)完整的构建输出。这是“运行”和“构建”按钮正下方小图标的最右侧图标。
答案 1 :(得分:15)
预执行输出至少出现在system.log中,并在Console.app中可见。
答案 2 :(得分:4)
根据我的答案(Is it normal for Xcode not to detect if a pre-action failed?),这是一个在开发论坛中讨论过的问题。前/后动作脚本非零状态似乎没有影响,输出似乎也没有进入任何日志。
答案 3 :(得分:4)
编辑:正如下面的评论所指出的,这个答案仅适用于构建阶段脚本,而不适用于预操作和后期操作脚本。
在Xcode 8中,您需要在“Navigator - > Report Navigator”中选择最新版本。在主区域中,您将能够看到完整的构建日志,包括输出。
这是一个简单的“Hello world”回声
答案 4 :(得分:2)
所以我找到了两种方法:
基本概念是将构建事件的所有输出发送到各种文件,然后将该输出作为目标构建脚本的一部分呈现(它确实显示了它的输出,可以退出或取消)。
警告黑客靠近
设置一个构建脚本,自动处理将输出泵送到2个不同的文件... 1用于常规日志,1个用于stderr。或者使用mine(我发布在我的博客上,因为看起来堆栈溢出代码检测很糟糕。)
然后你应该在方案预建阶段调用那个脚本,如下所示:
"${PATH_TO_LOG_SCRIPT}/log_prebuild.sh" "${PATH_TO_PREBUILD_SCRIPT_TO_EXECUTE}/scriptToExecute.sh" 2> "${SOURCE_ROOT}/build/prebuild_error.log"
然后,您需要在目标构建阶段的编译阶段之前设置脚本,以检查是否存在这些文件,将它们转储到日志中,并在出现故障时中断构建。或者您可以再次使用mine
然后建立并交叉你的手指:)
答案 5 :(得分:0)
就我而言,我必须以友好的方式向用户显示pre-action
脚本中的错误。受此custom archive script的启发,我发现可以在Xcode中显示对话框或脚本。
show_dialog() {
/usr/bin/osascript -e 'set titleText to "pre actions script error"
set dialogText to "Please install xxx to fix it"
display dialog dialogText with icon stop with title titleText'
}
show_dialog
我在这里使用stop
图标,也可以使用其他图标,例如note
和caution
notification
。show_notification() {
/usr/bin/osascript -e 'display notification "Please install xxx to fix it" with title "A error happens" subtitle "Prebuild" sound name "Frog"'
}
show_notification
对于我来说,我通常使用Script Editor
编辑AppleScript函数,然后将它们复制到Shell脚本中