批量添加“-fno-objc-arc”标志到(多个)源文件

在将Xcode项目转换为ARC(自动引用计数)后,我需要为我的一些源文件(主要是第三方代码)禁用ARC。

我知道我需要为这些文件中的每一个设置“-fno-objc-arc”标志,但Xcode不给我一个批量编辑选项 – 我需要手动将这个标志添加到每个文件,这可能是乏味的如果您需要将其设置为多个文件。

有没有人有一个聪明的方法呢?

select要添加标志的那个(使用Shift和/或Command ),然后按Enter键显示标志编辑器。 按Done(完成)将input的标志(S)应用于选定的文件。

教程

我撰写了一篇博客文章 ,作为这个过程的教程。

到目前为止,最简单的方法就是使用Edit> Refactor下的ARC转换工具。

这不是很清楚,但基本上你只是检查你想使用ARC的任何文件,并取消任何你不这样做。 这将做到以下几点:

1)未选中的文件将应用-fno-objc-arc标志

2)被选中的文件将被转换为ARC

3)已经被转换成ARC的文件将不会被修改

再仔细阅读一遍。 有时让人困惑的是,他们认为已经转换的文件应该在再次运行该工具时不被检查,但是这会错误地将-fno-objc-arc应用到这些文件(导致泄漏)。

您应该将ARC转换工具视为“批量selectARC兼容文件并转换不是ARC的文件”工具,而不是直接转换工具。

您可以根据需要多次运行转换工具 – 效果不会累积(尽pipe将文件转换为ARC是不可逆的)。

我需要设置不应该支持ARC的文件(主要是第三方代码)。

除了pipe理标志,您可以简单地为这些源创build一个静态库,然后链接。