iOS 腳本查找項目中無用資源腳本原理

腳本使用

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中去找,匹配到相關的字符串我們認為該圖片用到了
除非碰到一個字符串開頭和圖片名稱一樣,檢測不出來,其他的情況應該很少

如果檢測不到該字符串,那么認為該圖片沒有被用到

其他的資源類似

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。