Xcode 允许为调试和发布版本定义不同的优化级别。默认情况下,Xcode 根本不会优化调试版本 (
-O0
),并且会使用 -Os
优化发布版本(与 -O2
相同,但会禁用倾向于增大代码大小的优化)。
在某些情况下,您的应用程序或框架中有文件,应以不同的方式对其进行优化。例如。如果您已经实现了计算哈希值的函数,您可能希望使用
-O3
甚至-Ofast
来优化该函数。或者您编写的代码对性能根本不重要,但它很大并且会增加您的二进制大小,因此您希望使用 -Oz
对其进行优化(优化尽可能最小的代码大小,即使这会损害性能) .
您实际上可以在 Xcode 中更改每个文件的编译标志。
但是这些设置始终应用,无论是调试还是发布构建。如果您只想将这些设置应用于发布版本,否则您无法在调试版本中调试代码怎么办?
这可以通过使用简单的技巧来实现。每个文件编译标志的行为类似于 Xcode 中的构建设置,因此可以引用并扩展其他构建设置。
只需为您的项目或仅为此目标创建用户定义的构建设置。转到“构建设置”,按基本 (
+
) 左侧的 + | Basic
按钮,然后选择“添加用户定义的设置”。在较旧的 Xcode 版本中,该按钮位于顶栏的最右侧(在“级别”之后,Levels | +
),或者您可以使用菜单 (Editor > Add Build Setting > Add User-Defined Setting
)。
以您希望的任何方式命名构建设置,例如
EXTRA_OPTIMIZATION
。与所有设置一样,可以根据构建配置自定义此设置。对于调试版本将其保留为空,对于发布版本将其设置为 -O<whatever>
。
现在编辑每个文件的编译标志并将其设置为
$(EXTRA_OPTIMIZATION)
在调试版本中,这不会扩展为任何内容,因此不会更改任何内容。在发布版本中,它扩展为
-O<whatever>
。