从编译中禁用XCode项目中的某些文件

时间:2012-09-26 11:32:27

标签: ios xcode

我已经通过复制现有文件夹在XCode中启动了一个新项目,因为我的新应用程序将与旧版本具有许多共同功能。

问题是新应用程序不会使用我在旧应用程序中使用的框架。当我删除框架时,包括该框架在内的所有文件都会引发错误。

基本上我想在许多文件上禁用所有语法检查,依赖性检查等。我希望XCode忽略这些文件,尽管它们在项目树中。稍后当我修改它们时,我将再次手动启用它们。通过这种方式,我可以编译和测试我的小错误更改,而无需修复它在“未修改”文件中导致的所有错误,无论如何我将在未来修复。

我可以从项目树中删除它们,然后在我的工作完成后逐一添加它们,但我不想这样做,因为我的项目树可能搞砸了,应该有另一种方法可以完成此

我尝试从所有目标成员资格中删除这些文件,但它没有帮助。

提前致谢。

4 个答案:

答案 0 :(得分:19)

如果您需要删除大量文件,可以创建用户定义的构建设置,该设置应该被称为EXCLUDED_SOURCE_FILE_NAMES。并添加文件名或模式。

在我的情况下,我选择了我想省略一些文件的目标,编辑 - >添加构建设置 - >添加用户定义的设置(首先,这是以某种方式显示灰色。我选择了项目文件(在TARGETS之上),然后重新选择了目标文件,并且能够创建用户定义的设置) - >将其命名为EXCLUDED_SOURCE_FILE_NAMES - >重视PREFIX *

当然,您可以为所有目标创建整个项目的用户定义设置。

示例如何: enter image description here

原始答案:http://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html

答案 1 :(得分:7)

在Xcode 9中,我不确定旧版本,请转到:

  

构建设置 - >构建选项 - >排除的源文件名

添加要排除的所有文件名。你甚至可以进行通配符匹配。

Bellow是一个示例,说明我为所有方案排除了以dev-开头并以.cc开头的所有文件,除了为Simulator构建的Debug方案。所有Debug Simulator构建排除以release-开头并以.cc

结尾的文件

enter image description here

希望这有帮助!!

更新

我在框架方面遇到了类似的问题,您也可以将框架排除在嵌入到您的应用程序之外!

我的问题是我有2个框架,一个是为模拟器构建的,另一个是为ARM构建的。 iTunes Connect抱怨我,包括应用程序的模拟器。

如果您有许多框架,这也有助于减少应用程序的大小。

答案 2 :(得分:0)

在这里查看答案

Xcode: Is there a location/flag to prevent a Class from compiling?

简而言之,从项目目标中删除文件。

答案 3 :(得分:0)

作为脏黑客,你可以尝试排除不是文件,但是使用#ifdef NotCompile + #endif代码,因为它是在C \ C ++中用.h完成的,并在YOURPROJECT-prefix.pch中添加\删除#define NotCompile