1、配置編譯選項(xiàng)?
(Levels選項(xiàng)內(nèi))Generate Debug Symbols? 設(shè)置為NO,這個(gè)配置選項(xiàng)應(yīng)該會(huì)讓你減去小半的體積。注意這個(gè)如果設(shè)置成NO就不會(huì)在斷點(diǎn)處停下

2、舍棄架構(gòu)armv7
armv7用于支持4s和4,如果追求縮小包體積的話可以去掉這個(gè)指令集

3、去除無(wú)用的三方庫(kù)、代碼、readme
4、圖片處理
圖片是安裝包里占用空間最大的東西,我的項(xiàng)目中占用了一半的體積。
? ? *個(gè)人使用在線壓縮png圖片:https://compresspng.com/zh/
? ? *一些比較大體積的背景圖片壓縮成.jpg格式的。
? ? *用LSUnusedResource這個(gè)軟件查找項(xiàng)目中沒(méi)有用到的圖片,然后刪除,當(dāng)然不一定特別準(zhǔn)確,有一些[UIImage imageNamed:[NSString stringWithFormat:@"icon_%d",index]]這樣使用的圖片也會(huì)被列在未使用圖片中。
? ?*使用Assets.xcassets來(lái)管理圖片也可以減小安裝包的體積
5、build setting 里 DEAD_CODE_STRIPPING = YES(好像默認(rèn)就是YES)。 確定 dead code(代碼被定義但從未被調(diào)用)被剝離,去掉冗余的代碼,即使一點(diǎn)冗余代碼,編譯后體積也是很可觀的。

6、編譯器優(yōu)化級(jí)別
Build Settings->Optimization Level有幾個(gè)編譯優(yōu)化選項(xiàng),release版應(yīng)該選擇Fastest, Smalllest[-Os],這個(gè)選項(xiàng)會(huì)開(kāi)啟那些不增加代碼大小的全部?jī)?yōu)化,并讓可執(zhí)行文件盡可能小。

7、去除符號(hào)信息
Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release版本應(yīng)該設(shè)為yes,可以去除不必要的調(diào)試符號(hào)。Symbols Hidden by Default會(huì)把所有符號(hào)都定義成”private extern”,設(shè)了后會(huì)減小體積。


8、Strip Linked Product:DEBUG下設(shè)為NO,RELEASE下設(shè)為YES,用于RELEASE模式下縮減app的大??;
