如何避免Xcode在源代码管理中包含调试代码?

| 在测试我们的iOS应用时,我和我的团队需要禁用SSL证书验证。 目前,我们使用的是硬编码的“ 0”:
// In Prefix.pch
#define ALLOW_INVALID_SSL_CERTS

// Elsewhere
#ifdef ALLOW_INVALID_SSL_CERTS
// Code to disable SSL certificate validation
#endif
因此,每次发布新版本时,我们都必须记住删除“ 0”。 理想情况下,我们希望找到一种方法来启用Xcode中不会被检查到源代码管理中的标志。 我发现使用应用程序参数(
[[NSProcessInfo processInfo] arguments
)可以做到这一点;但是,这可能是可利用的,因为攻击者可以在启动应用程序之前找到向应用程序提供相关参数的方法。 还有另一种方法可以在Xcode中进行设置吗?     
已邀请:
        尝试在调试设置中将其他C标志设置为-DDEBUG = 1,在发行设置中将其设置为-DDEBUG = 0。然后在前缀文件中定义调试宏,如下所示。
#if DEBUG
#define ALLOW_INVALID_SSL_CERTS 1
#else
#define ALLOW_INVALID_SSL_CERTS 0
#endif
我是这样做的。如果您想知道在哪里设置-DDEBUG选项,请参见以下屏幕截图。     
        尝试在开发机器上定义环境变量,例如IOS_PROJ_ALLOW_INVALID_CERT = 1(并确保未在构建机器上定义它)。 然后修改项目的预处理器宏构建设置,以将ALLOW_INVALID_SSL_CERTS宏设置为$(IOS_PROJ_ALLOW_INVALID_CERT)env var的值。     

要回复问题请先登录注册