1、檢查ObjectiveC項目中 未使用的方法
準備工作
-
已自己的項目為例,將工程進行
build
,后show in finder
-
顯示包內容
-
找到Mach-O可執行文件
工具地址
https://github.com/nst/objc_cover
此腳本方法只能檢測 OC 可能未使用的方法,不適用其他場景
開始檢測
輸出
- 所有的未使用方法都會被列出,包含pod三方庫中的方法;
原理
原理利用 Mach-O 文件的結構和展示內容:
__TEXT:__objc_methname
: 中包含了代碼中的所有方法;
__DATA__objc_selrefs
:中則包含了所有被使用的方法的引用,通過取兩個集合的差集就可以得到所有未被使用的代碼.
Mach-o內部結構
問題:
如果在執行過程中出現can't find implemented methods
- 由于正則表達式的一些問題造成的,可以將
objc_cover.py
中的:
re_sig_sel_ios = re.compile("\s*imp 0x\w+ ([+|-]\[.+\s(.+)\])")
更換為即可解決問題
re_sig_sel_ios = re.compile("\s*imp\s*0x\w+ ([+|-]\[.+\s(.+)\])")
2、檢查Swift項目中未使用的方法、屬性、類
工具地址
https://github.com/zColdWater/swift-scripts
此腳本方法只能檢測 swift 可能未使用的方法、屬性、類
開始檢測
1. cd <項目根目錄>
2. 將unused.rb腳本文件本地路徑填入終端, 或者直接將 unused.rb 拖拽至終端。
例如:
輸出
Xcode 集成
*
工具本地路徑(建議將工具放入工程根目錄)+xcode
即可