我的项目中有几个assert(condition, "message")
陈述。
它们用于在开发过程中检查不变条件。我认为它们会在生产/发布版本中被忽略(如本答案所述)。他们不是。相反,它们会在 TestFlight 测试期间导致崩溃。当我评论断言应用程序不会崩溃时。某些事情通常会出错,但不会崩溃。
这可能与我的构建设置有关吗?
我所有的存档方案都使用发布配置:
断言位于 Cocoa Touch Framework 项目中,用于自定义键盘扩展。
所有项目中的所有目标(Cocoa Touch Framework,以及带有键盘扩展目标的主项目)都有这些构建设置:
Enable Foundation Assertions
Debug YES
Release NO
Disable Safety Checks NO
怎么了?
编辑:
Sulthan 的回答显示了如何为调试和发布版本全局禁用断言。那不是我需要的。我希望它按预期工作 - 断言应该在调试中启用,但在发布版本中禁用。
默认情况下,它以这种方式工作——它在我的主项目中也以这种方式工作。但它不适用于位于与该主项目链接的框架项目中的断言(此问题中的详细信息)。为什么?如何解决?