ios - 在 XCode 中导出文件中的所有警告

标签 ios objective-c xcode shell

我编写了显示 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/

相关文章:

ios - 导航弧内存未释放

ios - 核心数据 : Can only use -performBlock: on an NSManagedObjectContext that was created with a queue

ios - 切换到另一个ViewController时如何停止播放视频?

iphone - TableView 中文本字段的输入 View

ios - 如何从 Swift 的核心数据中删除特定的实体数据?

ios - 重新加载时 TableView 标题向下移动。 Swift-iOS

iphone - 如何在单击某些按钮时刷新 UIViewController View

ios - 无法将自定义字体添加到 Xcode

ios - 创建 UIGestureRecognizer 时,为什么它的 Action 使用#selector?

objective-c - Cocoa 目录内容