iOS項(xiàng)目冗余資源掃描腳本

  隨著iOS項(xiàng)目的版本不斷迭代,app中冗余文件會(huì)越來(lái)越多,app size也持續(xù)增加旨巷,是時(shí)候需要對(duì)app冗余資源進(jìn)行檢測(cè),對(duì)app進(jìn)行瘦身添忘。

使用方法:

1. 運(yùn)行環(huán)境為mac采呐, 首先準(zhǔn)備好工程源代碼;

2. 新建check.sh昔汉,將下面的代碼粘貼到check.sh中并且保存懈万;(可將txt文件改成sh后綴)

#!/bin/sh

##### several cases that the scripts does not work:

##### 1) there is space or slash in the resources file, such as "aaa .png" 資源文件名中含有空格或者/

##### 2) reference resources in commented code 資源引用代碼被注釋了

##### 3) you need to manually checked the resources one by one in the result 對(duì)于腳本檢查結(jié)果拴清,最好人工檢查一遍

##### 4) you can add some other types more than png, jpg, gif, wav, m4a 如果需要檢查其他資源,請(qǐng)自行修改腳本会通;

##### 5)默認(rèn)文件后綴都是如@2x.png格式口予,如果后綴格式不同,請(qǐng)自行修改腳本涕侈;

#### set parameters:PrjPath為項(xiàng)目工程所在目錄沪停,包含.m .xib文件;ResPath為被掃描的資源文件目錄裳涛,包含.png .wav

#### xcodeprojPath為工程xcodeproj位置

PrjPath=/Users/webersongao/WorkProject/Doumao_iOS

ResPath=/Users/webersongao/WorkProject/Doumao_iOS/Doumao/Assets.xcassets

xcodeprojPath=/Users/webersongao/WorkProject/Doumao_iOS/DouMao.xcodeproj

if [ -f ~/Desktop/Not_Used_resource_san_result.txt ];then

? ? rm -f ~/Desktop/Not_Used_resource_san_result.txt

fi

cd $PrjPath

files=$(find . -name "*.m" -o -name "*.xib" -o -name "*.mm" -o -name "*.plist")

cd $ResPath

for png in $(find . -name "*.png" -o -name "*.jpg" -o -name "*.gif" -o -name "*.wav" -o -name "*.m4a")

do

? ? basename='basename/'$png

? ? basename=${basename##*/}

? ? # echo $basename

? ? if [ "${basename##*.}" == "png" ];then

? ? ? ? echo $basename|grep -q @2x.png

? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? name=${basename%%@2x.png}

? ? ? ? else

? ? ? ? ? ? echo $basename|grep -q @3x.png

? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? name=${basename%%@3x.png}

? ? ? ? ? ? else

? ? ? ? ? ? ? ? name=${basename%.png}

? ? ? ? ? ? fi

? ? ? ? fi

? ? elif [ "${basename##*.}" == "jpg" ];then

? ? ? ? echo $basename|grep -q @2x.jpg

? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? name=${basename%%@2x.jpg}

? ? ? ? else

? ? ? ? ? ? echo $basename|grep -q @3x.jpg

? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? name=${basename%%@3x.jpg}

? ? ? ? ? ? else

? ? ? ? ? ? ? ? name=${basename%%.jpg}

? ? ? ? ? ? fi

? ? ? ? fi

? ? elif [ "${basename##*.}" == "gif" ];then

? ? ? ? echo $basename|grep -q @2x.gif

? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? name=${basename%%@2x.gif}

? ? ? ? else

? ? ? ? ? ? echo $basename|grep -q @3x.gif

? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? name=${basename%%@3x.gif}

? ? ? ? ? ? else

? ? ? ? ? ? ? ? name=${basename%%.gif}

? ? ? ? ? ? fi

? ? ? ? fi

? ? elif [ "${basename##*.}" == "wav" ];then

? ? ? ? name=${basename%%.wav}

? ? elif [ "${basename##*.}" == "m4a" ]; then

? ? ? ? name=${basename%%.m4a}

? ? else

? ? ? ? name=''

? ? fi

? if [ ${#name} -gt 0 ];then

? ? ? ? name=${name%%[0-9]*}

? ? ? ? cd $PrjPath

? ? ? ? if grep -q $name $files;then

? ? ? ? ? ? echo "$png" is used

? ? ? ? ? ? # echo "$png" is used >> ~/Desktop/Used_resource_san_result.txt

? ? ? ? else

? ? ? ? ? ? echo "$png" is used >> ~/Desktop/Not_Used_resource_san_result.txt

? ? ? ? ? ? # cd $xcodeprojPath

? ? ? ? ? ? # if grep -q $name project.pbxproj;then

? ? ? ? ? ? #? ? echo "$png" is not used >> ~/Desktop/resource_san_result.txt

? ? ? ? ? ? # else

? ? ? ? ? ? #? ? echo "$png" is not packaged

? ? ? ? ? ? # fi

? ? ? ? fi

? ? else

? ? ? ? echo name is empty

? ? fi

done

if [ -f ~/Desktop/Not_Used_resource_san_result.txt ]; then

? ? echo ***************the end of scan. Please see result from resource_san_result.txt

else

? ? echo ***************the end of scan, everything is OK

fi

3. 設(shè)置腳本中參數(shù):

PrjPath為項(xiàng)目工程所在目錄木张,包含.m .xib文件;

ResPath為被掃描的資源文件目錄端三,包含.png .wav舷礼;

xcodeprojPath為工程xcodeproj位置;

例如:

PrjPath=/Users/zhuquan/Documents/secret-develop/Project

ResPath=/Users/zhuquan/Documents/secret-develop/Project/Phoenix/Res

xcodeprojPath=/Users/zhuquan/Documents/secret-develop/Project/Phoenix.xcodeproj


4. 執(zhí)行腳本check.sh;

5. 最后會(huì)出檢測(cè)結(jié)果郊闯,檢測(cè)出來(lái)的冗余資源最好人工檢查一遍妻献。

WebersonGaodeiMac:~ webersongao$ /Users/webersongao/Desktop/check.sh?

./CloudLibrary/disk_transferProgress_high.imageset/disk_transferProgress_high@3x.png is ./CloudLibrary/disk_shujia_gouxuanbg.imageset/disk_shujia_gouxuanbg@2x.png is used

./CloudLibrary/disk_shujia_gouxuanbg.imageset/disk_shujia_gouxuanbg@3x.png is used

./CloudLibrary/disk_diskuse_info01.imageset/disk_diskuse_info01.png is used

./CloudLibrary/disk_diskuse_info00.imageset/disk_diskuse_info00.png is used

./運(yùn)動(dòng)記錄.pngis not packaged***************the end of scan, everythingisO

使用總結(jié):

腳本使用過(guò)程中有一些注意事項(xiàng)如下,

1. 如果資源文件名中含有空格或者/团赁,比如”aaa .png”育拨,該資源無(wú)法正常檢測(cè);

2. 如果資源文件在代碼中被引用了欢摄,但是該引用代碼被注釋掉了熬丧,也無(wú)法成功檢測(cè);

3.?對(duì)于最終腳本輸出的腳本檢查結(jié)果怀挠,最好人工檢查一遍析蝴,有些資源可能并非是冗余資源;

4. 目前腳本中支持的資源類型有.png .jpg .gif .wav .m4a唆香,如果需要檢查其他資源嫌变,請(qǐng)自行修改腳本。



原文地址:https://www.cnblogs.com/Boohee/p/5598313.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末躬它,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子东涡,更是在濱河造成了極大的恐慌冯吓,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疮跑,死亡現(xiàn)場(chǎng)離奇詭異组贺,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)祖娘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門失尖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事掀潮」娇洌” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵仪吧,是天一觀的道長(zhǎng)庄新。 經(jīng)常有香客問(wèn)我,道長(zhǎng)薯鼠,這世上最難降的妖魔是什么择诈? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮出皇,結(jié)果婚禮上羞芍,老公的妹妹穿的比我還像新娘。我一直安慰自己郊艘,他們只是感情好涩金,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著暇仲,像睡著了一般步做。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奈附,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天全度,我揣著相機(jī)與錄音,去河邊找鬼斥滤。 笑死将鸵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的佑颇。 我是一名探鬼主播顶掉,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挑胸!你這毒婦竟也來(lái)了痒筒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茬贵,失蹤者是張志新(化名)和其女友劉穎簿透,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體解藻,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡老充,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了螟左。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啡浊。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡觅够,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巷嚣,到底是詐尸還是另有隱情喘先,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布涂籽,位于F島的核電站苹祟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏评雌。R本人自食惡果不足惜树枫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望景东。 院中可真熱鬧砂轻,春花似錦、人聲如沸斤吐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)和措。三九已至庄呈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間派阱,已是汗流浹背诬留。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贫母,地道東北人文兑。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像腺劣,于是被迫代替她去往敵國(guó)和親绿贞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359