解决方法
(这是第一位,你已经做了,或者像这样)
输出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拾取并解析.为了使其也登录到一个文件,请使用三通作为脚本的一部分(有关更改,请参阅第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"
这种方法可以像您喜欢的那样复杂,当然也可以开发一个文件,我们可以增加脚本来做任何我们选择的事情:
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中自动化的方法,尽管您可以使用xcodebuild来实现.在UI中,唯一的选择是将日志文本从日志导航器复制到剪贴板,似乎.