优化目的
目前项目编译时,会有几百上千条编译警告,大多数警告只是开发工具和库新老版本的差异提示,对项目功能并没有影响,但是大大增加了查找报错原因的难度。因此在不影响项目原有功能的基础上,通过技术方式实现隐藏大多数无关紧要的告警提示。
优化方案
1. 忽略Cocoapods管理的三方库警告
三方库原则上不需要我们去查找问题并修改,因此可以直接忽略所有警告(极个别导致项目出现bug的三方除外)。
步骤如下:
- Podfile添加
inhibit_all_warnings!
命令(已添加); - 从GitLab上拉取最新代码后,执行
pod install
即可生效,目前可以减少700条以上的警告。
2. 全局忽略某些类型的警告
全局忽略时主要还是针对本地引用的三方库警告,另外需要主要警告的类型是否会影响项目的功能,目前只忽略对代码功能没有影响警告。
步骤如下:
- 在左侧警告列表中选中某个警告右键查看
Reveal in Log
,找到warning类型,如下图:
-W+警告类型:表示打开某种类型的警告,-Wformat打开format类型的警告
-Wno-+警告类型:表示关闭某种类型的警告,-Wno-format关闭format类型的警告
如果需要全局忽略这个告警,就需要在 Build Settings
中的 Other Warning Flags
添加 -Wno-format
字段,如下图:
注意:全局忽略,虽然忽略了三方库的警告,但是也会同时忽略我们自己的代码警告,因此本次忽略主要针对对代码功能无影响的警告,但在实际开发过程中仍然需要注意代码规范,不要出现明显的代码警告类型,比如循环引用,对象未使用,弱引用,对象类型混用等等。
3. 忽略某个文件的某些类型警告
这个方法是对第二种方法的补充,比如有些警告我们只希望在三方库中忽略,而在我们自己的文件中显示,那么则可以使用这种方法,就是会比较辛苦一点,暂时未启用。方法如下: