我编写了显示 Xcode 警告的脚本。例如 TODO
警告。该脚本将在 XCode 的每个构建上运行。 (我已经在“运行阶段”选项中编写了脚本)。
现在我想收集所有这些警告并将其导出到文本文件。有什么方法可以将所有警告或构建错误导出到文本文件吗?
最佳答案
(第一部分是你已经完成的,或者类似的东西)
输出 TODO 等作为警告。
选择您的项目,单击构建阶段选项卡,然后从“编辑器”菜单中选择“添加构建阶段 > 添加运行脚本构建阶段”。
在脚本框中使用如下脚本:
KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
(由 http://deallocatedobjects.com/posts/show-todos-and-fixmes-as-warnings-in-xcode-4 提供)
KEYWORDS
正则表达式匹配TODO:
, FIXME:
, ???:
和 !!!:
, 但可以进行调整以找到您想要的任何指标。
将此输出到文件。
脚本当前输出到stdout
,由 XCode 拾取并解析。要使其也记录到文件中,请使用 tee
作为脚本的一部分(请参阅第 2 行末尾的更改):
KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/" | tee "${SRCROOT}/NOTICES.txt"
当然,这种方法可以像您喜欢的那样复杂,tee
写入一个文件,我们可以扩充脚本来做我们选择的任何事情:
KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/" | tee ${SRCROOT}/NOTICES.txt
mail -s NOTICES idmillington@example.com < ${SRCROOT}/NOTICES.txt
通过电子邮件发送给我。
我已经确认这适用于 XCode 5.0.2,包括电子邮件。
请注意,这不会将构建中的所有警告导出到文件中,这正是您所要求的。我找不到在 XCode 5.0.2 中自动执行此操作的方法,尽管您可以使用 xcodebuild
来实现.在 UI 中,唯一的选择似乎是将日志文本从日志导航器复制到剪贴板。
关于ios - 在 XCode 中导出文件中的所有警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047112/