无论构建类型如何,宏 __FILE__、__LINE__ 和 __PRETTY_FUNCTION__ 都能正常工作吗?

Will the macros __FILE__, __LINE__ and __PRETTY_FUNCTION__ work irrespective of the build type?

我想使用 Objective-C 宏 __LINE____PRETTY_FUNCTION__ 在运行时记录一些信息。有许多工具可以提供故障转储的详细信息,但就我而言,我想分析远程数据库条目,例如记录输入的方法和操作系统(Android 或 iOS)。

我不熟悉宏 __LINE____PRETTY_FUNCTION__ 尽管它们适用于我当前的构建配置(非 App Store),但我不确定构建配置更改时它是否会继续工作。

以不同方式构建时,信息是否会保留,例如不包含调试符号的发布构建?

使用位码的 App Store 构建对此有影响吗?

这些宏在编译前的预处理过程中被替换为实际值。

我不确定在生产中使用它们是否是个好主意,但它们肯定会起作用。他们不需要调试符号(它们是源代码的一部分)并且他们不关心您如何签署应用程序包。