如何刪除iOS工程里未使用的圖片
一個(gè)普通的iOS工程經(jīng)歷了多次改版之后,往往就會(huì)存在許多廢棄不用的圖片沒有刪除掉,它們的存在會(huì)使iOS工程的體積大大增加。如果清除掉這些圖片,就能讓ipa包的體積大大縮減,起到瘦身的效果。一個(gè)普通的i
一個(gè)普通的iOS工程經(jīng)歷了多次改版之后,往往就會(huì)存在許多廢棄不用的圖片沒有刪除掉,它們的存在會(huì)使iOS工程的體積大大增加。如果清除掉這些圖片,就能讓ipa包的體積大大縮減,起到瘦身的效果。一個(gè)普通的iOS工程會(huì)有大約三分之一的圖片是未使用的,所以清理這些圖片還是非常有必要的。
iOS項(xiàng)目的目錄結(jié)構(gòu)
一般情況下,iOS項(xiàng)目的目錄結(jié)構(gòu)大致如下圖所示:
```
├─ Classes
│ ├─ Model
│ ├─ View
│ └─ Controller
├─ Resources
│ ├─ Images.xcassets
│ │ ├─
│ │ ├─
│ │ └─ ...
│ └─ ...
└─ ...
```
安裝Silver Searcher
首先我們要安裝Silver Searcher。在Linux系統(tǒng)里可以使用ack-grep來(lái)進(jìn)行搜索內(nèi)容,但是mac系統(tǒng)里并沒有ack-grep怎么辦呢?其實(shí)我們可以在mac系統(tǒng)中安裝Silver Searcher來(lái)進(jìn)行搜索字符串,使用的方法和ack-grep相似,而且搜索的速度比ack-grep還要快。方法是打開終端,輸入以下命令安裝:
```
brew install the_silver_searcher
```
搜索未使用的圖片
iOS的圖片分為標(biāo)清和高清兩種,所以搜索時(shí)就要先把"@2x"去掉。因?yàn)楦咔宓膱D片名字是以"@2x"結(jié)尾的,一般的代碼里并不會(huì)寫上"@2x"。如果搜索到的結(jié)果為空字符串,說(shuō)明代碼里并沒有引用該圖片。
保存未使用的圖片名
獲取到的所有未使用的圖片名,經(jīng)過排序后保存到一個(gè)txt文件里。為什么把文件名保存早一個(gè)文本文檔里而不是直接執(zhí)行代碼呢?目的為了先確認(rèn)一下是否有誤搜到的圖片。比如搜到了這幾張未使用的圖片:
```
```
手動(dòng)確認(rèn)圖片是否被使用
看下面代碼可以知道這幾個(gè)圖片實(shí)際上是用到了的,可是搜索到的未使用圖片卻有它們。所以要看文本里的圖片名有沒有含有連續(xù)數(shù)字,有的話要再手動(dòng)搜索一下代碼,進(jìn)一步確定圖片是否被使用。
刪除未使用的圖片
接下來(lái)我們就可以用Python代碼讀取txt文檔的內(nèi)容,將里面的圖片刪掉。可以使用os模塊遍歷圖片文件夾,并通過文件名判斷是否應(yīng)該刪除該圖片。在刪除之前,最好備份一份未使用圖片的文件夾,在刪除后可以對(duì)比一下文件夾大小,確保刪除操作正確無(wú)誤。
以上是如何刪除iOS工程里未使用的圖片的方法,希望對(duì)你有所幫助。清理未使用的圖片可以有效減小iOS工程的體積,提高應(yīng)用的性能和加載速度。記得在操作前備份重要文件,以免不小心刪除了需要使用的圖片。