前言
最近堆的坑——release包含了Assert的逻辑。原来是项目中针对发布包没有关闭Assert功能,即没有定义NDEBUG宏所导致。如下是搜索资料的与相关实践总结,供遇到同类问题的同学参考
Android NDEBUG配置
在build.gradle文件
IOS NDEBUG配置
在TAGGETS的build Settings的Preprocessing配置
NDBUG跟assert
assert用于调试应用,一般是在开发阶段使用。assert为true会抛出运行时异常而中止应用的运行。而NDBUG宏侧用于屏蔽assert的实现,原因是assert的具体实例逻辑中用NDBUG控制实际的运行效果。也就是assert模块跟咱们约定了可以用NDBUG宏来开启跟关闭assert的功能
assert.h文件如下