最近在讀唐巧大神的《iOS開發進階》,學到了一個大招:使用腳本刪除ios中未使用的圖片(紙書上有點小問題,參考github上的issue:使用腳本刪除ios中未使用圖片)。
issue中得到的建議是:將代碼保存在一個.sh文件中,在xcode裡面執行shell腳本文件。看到這裡,頭瞬間大了,大學學的shell都還給linux老師了....還有xcode中怎麼執行腳本啊???
google一下,找到mac下創建.sh文件的小白方法:教你在mac上面創建可執行腳本文件。當然還有 XCode中執行腳本的三種方法。下面針對本次操作,自己寫個總結:
1、創建可執行腳本文件:
(1)打開sublime,輸入以下shell代碼:
#! /bin/bash for i in `find . -name "*.png" -o -name "*.jpg"`; do file=`basename -s .jpg "$i" | xargs basename -s .png | xargs basename -s @2x` result=`ack -i "$file"` if [ -z "$result" ]; then echo "$i" # 如果需要,可以直接執行刪除: # rm "$i" fi done
(2)保存文件名:deletePhoto.sh,記住保存的路徑:/Users/linafu/deletePhoto
(3)為腳本文件添加執行權限:在終端輸入如下腳本:chmod +x ./deletePhoto
至此,shell腳本就建好了!
2、在xcode中執行已經創建好了的腳本:
(1)在xcode菜單欄中:file->new->target,然後osx->other->external build system,命名為:scriptTarget,這樣就建立了一個虛擬的target。
(2)在工程的target區,選中scriptTarget,在build tool裡面輸入:/Users/linafu/deletePhoto
(3)在工程target的build phasese->target dependencies中添加scriptTarget
好了,以後不論什麼時候,build工程之前都會先build這個虛擬target,通過build這個target來運行腳本。當然,我們並不會每次編譯都需要刪除圖片,所以,使用完可以將它從build phasese->target dependencies中移除。
忘了說,在所有的步驟之前,要先在終端通過:brew install ack 命令安裝ack(ack用於做搜索)。
哈哈,添加截圖太不方便,就不上圖了,不夠明白可以看文中的鏈接。另外,這裡附上另一個刪除ios中未使用圖片的方法,用的是python腳本:傳送門