iOS開發(fā) 優(yōu)化安裝包大小實(shí)踐記錄

話說這幾天被產(chǎn)品經(jīng)理吐槽iOS的安裝包太大了,其實(shí)我給他測試的包是adhoc包鼻百,發(fā)布到App Store的包更大呢团搞,哈哈严望。正好沒啥大的開發(fā)需求,那就優(yōu)化一下吧逻恐。

先看一下現(xiàn)在打的2個(gè)通道的包的大邢裎恰:

上圖的是App Store通道導(dǎo)出的包,下圖是adhoc通道導(dǎo)出的包复隆,我的天拨匆,一個(gè)簡簡單單的商城APP,竟然有207M(但是App Store下載頁面的包只有95M挽拂,應(yīng)該是蘋果做了優(yōu)化)惭每。這就不得不說到項(xiàng)目的歷史了,這個(gè)項(xiàng)目從2019年年底立項(xiàng)到現(xiàn)在經(jīng)歷了2年多的時(shí)間轻局,經(jīng)歷了七八個(gè)iOS開發(fā)的手洪鸭,經(jīng)歷了多次的功能改版(不是簡單的功能疊加,據(jù)我所知完全推到重來就有3次仑扑,基本來一個(gè)技術(shù)部老大就會大改一次)。有很多功能開發(fā)完成之后都會經(jīng)歷幾次拿掉置鼻,再拿上來的反復(fù)镇饮,所以開發(fā)者也不敢輕易地刪除功能。這就導(dǎo)致現(xiàn)在的項(xiàng)目里代碼冗余功能很多箕母。有些方面確實(shí)不是一個(gè)小小的開發(fā)能決定的储藐。

好了,歷史原因就不說了嘶是,那就目前的項(xiàng)目來說钙勃,看看哪些方面可以優(yōu)化吧。于是在網(wǎng)上巴拉巴拉搜了一大堆內(nèi)容聂喇,說的很多的就是圖片和無用代碼的清除辖源。先看一下IPA包的構(gòu)成吧蔚携,把導(dǎo)出的IPA包重命名為.zip,再解壓縮就能查看IPA包的包內(nèi)容了克饶,顯示包內(nèi)容可以看到主要的是exec可執(zhí)行文件有35M酝蜒,F(xiàn)rameworks有72M,F(xiàn)rameworks中占用最大的是Swift的可執(zhí)行文件(由于我們OC項(xiàng)目中引入了一個(gè)Swift庫矾湃,導(dǎo)致有Swift支持文件)亡脑,Assets.car圖片資源98M,其他的都是一些占用很小的文件邀跃。目前分析主要還是pod庫和圖片的占用霉咨。

說干就干。不拍屑,還不能開始躯护,先開一個(gè)新的分支備份代碼,計(jì)劃:1.刪掉無用代碼 2.刪除無用圖片? 3.壓縮大圖片資源? 4.Frameworks優(yōu)化丽涩。

1.刪除項(xiàng)目中的側(cè)邊欄三方MMDrawerController棺滞,刪除老的IM模塊(大概500多個(gè)文件,包含圖片矢渊,大概10M)继准,刪除三方環(huán)信SDK,一頓頭暈的操作之后矮男,趕緊打個(gè)包看看移必,導(dǎo)出的App Store包,190M毡鉴,效果還行崔泵。又刪除了一個(gè)之前的關(guān)于我們和功能引導(dǎo)的模塊,大概20個(gè)類猪瞬,再導(dǎo)出包試試憎瘸,減少了0.1M,效果不太理想陈瘦,應(yīng)該大頭還在圖片吧幌甘。

2.用(https://github.com/tinymind/LSUnusedResources)檢測無用圖片

這里可以先選擇忽略連續(xù)圖片,檢測完成之后最好不要在這里直接刪除痊项,一些宏定義的圖片可能會被誤刪锅风。哎,刪圖是我快樂呀鞍泉,為了不誤刪皱埠,我一個(gè)一個(gè)的找到檢索到的圖全局搜索,確定無用了再刪除咖驮。這里提一下边器,最好把無用的代碼刪除训枢,特別是包含本地圖片的代碼,不然檢測工具檢測不到(可見良好的代碼習(xí)慣多么重要呀)饰抒。一開始項(xiàng)目中Assets.xcassets文件34M肮砾,刪了無用圖片之后25M。一頓操作之后袋坑,導(dǎo)出App Store包看看仗处,168M,adhoc包95M枣宫,還行婆誓。

3.用https://tinypng.com壓縮圖片,本地的很多工具圖1也颤、2kb,可以不用壓縮洋幻,主要針對大于50kb的圖,有些圖片好幾M翅娶,真的忍不了文留,壓縮之后一般都能節(jié)省70%的空間。這里壓縮工具雖然號稱無損壓縮竭沫,經(jīng)過對比我發(fā)現(xiàn)還是有一點(diǎn)點(diǎn)差別的燥翅,不過大多數(shù)圖片肉眼看不出區(qū)別,對于需要特別高清的圖慎用蜕提。壓縮后Assets.xcassets文件11M森书。壓縮圖片之后的包App Store包130M,adhoc包57M谎势。預(yù)估App Store下載頁面的包能減少20--30M凛膏。

這個(gè)時(shí)候再顯示下App Store包內(nèi)容看看,exec可執(zhí)行文件有32.6M脏榆,F(xiàn)rameworks46M猖毫,Assets.car圖片資源35M。

4.由于導(dǎo)入了Swift庫姐霍,導(dǎo)致pod庫都成了動態(tài)庫鄙麦,嘗試了一些方法指定Swift庫為動態(tài)庫,其他為靜態(tài)庫镊折,未成功。還有一個(gè)解決方案就是去除或者替換目前的Swift庫介衔,預(yù)計(jì)包大小可以減少20M恨胚,目前我們這個(gè)功能也是基本不用。等產(chǎn)品啥時(shí)候說不要這個(gè)功能了就去掉吧炎咖。

5.發(fā)了一個(gè)新的包赃泡,優(yōu)化后的App Store下載頁面的包從95M降到了46M寒波,再也不擔(dān)心產(chǎn)品找我吐槽了,哈哈升熊。

安裝包優(yōu)化使我快樂俄烁,目前的包還有優(yōu)化空間。如果有同學(xué)有好的優(yōu)化方法级野,歡迎交流學(xué)習(xí)页屠。

資源

iOS的ipa包瘦身之旅

正經(jīng)分析iOS包大小優(yōu)化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蓖柔,隨后出現(xiàn)的幾起案子辰企,更是在濱河造成了極大的恐慌,老刑警劉巖况鸣,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牢贸,死亡現(xiàn)場離奇詭異,居然都是意外死亡镐捧,警方通過查閱死者的電腦和手機(jī)潜索,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懂酱,“玉大人竹习,你說我怎么就攤上這事⊥嫜妫” “怎么了由驹?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昔园。 經(jīng)常有香客問我蔓榄,道長,這世上最難降的妖魔是什么默刚? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任甥郑,我火速辦了婚禮,結(jié)果婚禮上荤西,老公的妹妹穿的比我還像新娘澜搅。我一直安慰自己,他們只是感情好邪锌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布勉躺。 她就那樣靜靜地躺著,像睡著了一般觅丰。 火紅的嫁衣襯著肌膚如雪饵溅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天妇萄,我揣著相機(jī)與錄音蜕企,去河邊找鬼咬荷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛轻掩,可吹牛的內(nèi)容都是我干的幸乒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唇牧,長吁一口氣:“原來是場噩夢啊……” “哼罕扎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奋构,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤壳影,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后弥臼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宴咧,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年径缅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掺栅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纳猪,死狀恐怖氧卧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氏堤,我是刑警寧澤沙绝,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站鼠锈,受9級特大地震影響闪檬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜购笆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一粗悯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧同欠,春花似錦样傍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至襟锐,卻和暖如春炕檩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捌斧。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工笛质, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捞蚂。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓妇押,卻偏偏與公主長得像,于是被迫代替她去往敵國和親姓迅。 傳聞我的和親對象是個(gè)殘疾皇子敲霍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容