優(yōu)化目的
目前項目編譯時,會有幾百上千條編譯警告,大多數(shù)警告只是開發(fā)工具和庫新老版本的差異提示,對項目功能并沒有影響,但是大大增加了查找報錯原因的難度。因此在不影響項目原有功能的基礎上,通過技術方式實現(xiàn)隱藏大多數(shù)無關緊要的告警提示。
優(yōu)化方案
1. 忽略Cocoapods管理的三方庫警告
三方庫原則上不需要我們去查找問題并修改,因此可以直接忽略所有警告(極個別導致項目出現(xiàn)bug的三方除外)。
步驟如下:
- Podfile添加
inhibit_all_warnings!命令(已添加); - 從GitLab上拉取最新代碼后,執(zhí)行
pod install即可生效,目前可以減少700條以上的警告。
2. 全局忽略某些類型的警告
全局忽略時主要還是針對本地引用的三方庫警告,另外需要主要警告的類型是否會影響項目的功能,目前只忽略對代碼功能沒有影響警告。
步驟如下:
- 在左側警告列表中選中某個警告右鍵查看
Reveal in Log,找到warning類型,如下圖:

warningLog.jpg
-W+警告類型:表示打開某種類型的警告,-Wformat打開format類型的警告
-Wno-+警告類型:表示關閉某種類型的警告,-Wno-format關閉format類型的警告
如果需要全局忽略這個告警,就需要在 Build Settings 中的 Other Warning Flags 添加 -Wno-format 字段,如下圖:

addNoWarning.jpg
注意:全局忽略,雖然忽略了三方庫的警告,但是也會同時忽略我們自己的代碼警告,因此本次忽略主要針對對代碼功能無影響的警告,但在實際開發(fā)過程中仍然需要注意代碼規(guī)范,不要出現(xiàn)明顯的代碼警告類型,比如循環(huán)引用,對象未使用,弱引用,對象類型混用等等。
3. 忽略某個文件的某些類型警告
這個方法是對第二種方法的補充,比如有些警告我們只希望在三方庫中忽略,而在我們自己的文件中顯示,那么則可以使用這種方法,就是會比較辛苦一點,暫時未啟用。方法如下:

oneNoWarning.jpg