腳本使用
FindUnUseResource.py
腳本地址
python3 FindUnUseResource.py -f .png,.jpg,.jpeg,.mp3,.m4a -p /Users/a58/Desktop/HaoJie -e .bundle,Assets.xcassets,Pods
參數說明:
-f 查找的資源類型,多個用逗號隔開
-p 查找的項目路徑
-e 排除哪些路徑,多個用逗號隔開
檢測結果:
image.png
腳本原理
我們以圖片資源為例:
1、查找項目中所有圖片名稱
一般我們的項目中的圖片存儲地大概這么幾個地方
bundle 、 主項目中 、 Assets.xcassets
image.png
腳本主要是查找Assets.xcassets和主項目中,忽略bundle中的圖片名稱<因為bundle中的圖片一般是別人封裝好的,可能配合framework等用,你不知道里面的圖片有沒有真正的被用到>
1.1、獲取主項目中圖片的名字
主項目中的圖片名字比較好獲取,遍歷項目中除了Assets.xcassets,Pods,.bundle的文件即可,查找到擴展名為png、jpg、jepg等文件保存下來即可
ProjectPath/Resource/tabSelected.png --> tabSelected
1.2、Assets.xcassets中圖片名稱的獲取
Assets.xcassets中的圖片圖片獲取需要注意,實際文件圖片名和Assets.xcassets中名字可能不一樣,圖片資源加到Assets.xcassets是可以修改名稱的,實際使用的是Assets.xcassets中的名稱
image.png
/Users/a58/Desktop/smallDemo/ImagesDemo001/ImagesDemo001/Assets.xcassets/weibo.imageset --> weibo
2、遍歷項目中的文件,搜索有沒有出現圖片名稱
通過觀察,我們可以看到,圖片的名稱都是以字符串的形式進行使用的
image.png
所以我們拿著 "imageName去項目.h、.m、.xib、.storyboard、.swift中去找,匹配到相關的字符串我們認為該圖片用到了
除非碰到一個字符串開頭和圖片名稱一樣,檢測不出來,其他的情況應該很少
如果檢測不到該字符串,那么認為該圖片沒有被用到
其他的資源類似