安裝包瘦身
在上一篇啟動(dòng)優(yōu)化中廊佩,有分析過項(xiàng)目中所有的代碼拣度、資源都在XX.app
包里面劝贸,將來Xcode會(huì)將這個(gè)XX.app
包壓縮成一個(gè)ipa文件,然后上傳到AppStore
提供給用戶下載谅猾,如果項(xiàng)目越來越大,那么這個(gè)ipa文件就會(huì)越來越大。
為了給安裝包(IPA)
瘦身税娜,我們就要知道安裝包有哪些文件組成:
安裝包(IPA)
主要由可執(zhí)行文件坐搔、資源組成。
安裝包瘦身方式:
-
對(duì)于資源(圖片敬矩、音頻概行、視頻等)
- 采取無損壓縮
- 去除沒有用到的資源:https://github.com/tinymind/LSUnusedResources
-
對(duì)于可執(zhí)行文件:
- 編譯器優(yōu)化
Strip Linked Product
、Make Strings Read-Only
弧岳、Symbols Hidden by Default
設(shè)置為YES
(現(xiàn)在的項(xiàng)目已經(jīng)默認(rèn)為YES
了凳忙,一些老項(xiàng)目可能還會(huì)為NO
)
2.去掉異常支持
Enable C++ Exceptions
、Enable Objective-C Exceptions
設(shè)置為NO
禽炬,Other C Flags
添加-fno-exceptions
3.利用AppCode(https://www.jetbrains.com/objc/)檢測(cè)未使用的代碼
菜單欄 -> Code -> Inspect Code
4.編寫
LLVM
插件檢測(cè)出重復(fù)代碼涧卵、未被調(diào)用的代碼(這種方式比較高級(jí)也比較難)5.生成
LinkMap
文件,可以查看可執(zhí)行文件的具體組成腹尖,如下圖: - 編譯器優(yōu)化
如果項(xiàng)目比較大柳恐,分析LinkMap
文件就會(huì)比較麻煩,我們可以借助第三方工具解析LinkMap
文件:https://github.com/huanxsd/LinkMap
它其實(shí)是個(gè)Mac
項(xiàng)目热幔,我們下載下來乐设,運(yùn)行項(xiàng)目 -> 選擇文件 -> 點(diǎn)擊開始,就能顯示每個(gè)文件占用多大绎巨,我們就能根據(jù)文件有目的性的進(jìn)行優(yōu)化近尚。如下圖:
貼一個(gè)安裝包瘦身的實(shí)踐方案:iOS安裝包瘦身 - 全部實(shí)測(cè)