我有一种情况需要在少数非ARC xcode项目中为许多文件启用ARC。我不希望完全转换为ARC,只需要使用arc启用少量文件。
有许多解决方案使用XCode控制台将 -fobjc-arc 标志包含在Compile Sources中的特定文件中。但是我在多个xcode项目中有太多文件要通过XCode单独更改它。
是否有一种方法可以通过编程方式修改构建阶段设置。 我找到了很少的帖子,比如
这两个都是很好的解决方案,但我需要设置一种机制,我可以编写脚本来管理它们。其中一些在服务器上运行,并且生成的xcode被分发给其他人进行测试。
project.pbxproj 代码的操作似乎是最可能的选择。但我不知道该怎么做。
答案 0 :(得分:2)
如果查看.xcodeproj文件中的.pbxproj文件,可以看到项目中包含的文件。我不确定你想要手动修改标志的深度,但我有一些文件设置了编译器标志。在.pbxproj文件中,它们看起来像这样:
D5298D04170F232900D3B684 /* ASIHTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FACE22CF15B72C4C00A0A4AD /* ASIHTTPRequest.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
没有编译器标志的文件如下所示:
D5298D02170F232900D3B684 /* GradientShapeView.m in Sources */ = {isa = PBXBuildFile; fileRef = FACE22C715B6F90000A0A4AD /* GradientShapeView.m */; };
我不知道为什么,但这些编译器标志和文件在该.pbxproj文件中列出了4次。我在项目中有12个文件,并设置了编译器标志,但该文件在该文件中找到48次。
您可以设置文本解析器来运行此文件,并将该标志添加到您希望拥有它们的特定文件中。我不确定你还会在这方面做些什么,但这将是一种将编译器标志添加到特定文件的perl脚本方式。
答案 1 :(得分:2)
如果您想将默认目标保持为非ARC,那么您有两个选择:
答案 2 :(得分:1)
选择要同时启用ARC的所有文件,然后按return / enter。它将打开一个文本框,您可以在其中输入-fobjc-arc
,然后将其添加到所有文本框中。