項目打包之后.ipa包的大小是118.9M映企,上傳到App Store后iPhone6s上顯示85.5M,下載時間太長静浴,所以找了一些優(yōu)化方法堰氓,下面這些都是別人寫的自己試了一下確實好用,不是原創(chuàng)苹享,只是記錄一下双絮。
1浴麻、配置編譯選項?
(Levels選項內(nèi))Generate Debug Symbols? 設(shè)置為NO,這個配置選項應(yīng)該會讓你減去小半的體積囤攀。注意這個如果設(shè)置成NO就不會在斷點處停下
2软免、舍棄架構(gòu)armv7
armv7用于支持4s和4,4s是2011年11月正式上線焚挠,雖然還有小部分人在使用膏萧,但是追求包體大小的完全可以舍棄了。
3蝌衔、去除無用的三方庫榛泛、代碼、readme
4噩斟、圖片處理
圖片是安裝包里占用空間最大的東西曹锨,我的項目中占用了一半的體積。
? ? *用imageoptim壓縮圖片的大小
? ? *一些比較大體積的背景圖片壓縮成.jpg格式的剃允。
? ? *用LSUnusedResource這個軟件查找項目中沒有用到的圖片沛简,然后刪除,當(dāng)然不一定特別準(zhǔn)確硅急,有一些[UIImage imageNamed:[NSString stringWithFormat:@"icon_%d",index]]這樣使用的圖片也會被列在未使用圖片中覆享。
? ?*使用Assets.xcassets來管理圖片也可以減小安裝包的體積
5、build setting 里 DEAD_CODE_STRIPPING = YES(好像默認(rèn)就是YES)营袜。 確定 dead code(代碼被定義但從未被調(diào)用)被剝離撒顿,去掉冗余的代碼,即使一點冗余代碼荚板,編譯后體積也是很可觀的凤壁。
6、編譯器優(yōu)化級別
Build Settings->Optimization Level有幾個編譯優(yōu)化選項跪另,release版應(yīng)該選擇Fastest, Smalllest[-Os]拧抖,這個選項會開啟那些不增加代碼大小的全部優(yōu)化,并讓可執(zhí)行文件盡可能小免绿。
7唧席、去除符號信息
Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release版本應(yīng)該設(shè)為yes,可以去除不必要的調(diào)試符號嘲驾。Symbols Hidden by Default會把所有符號都定義成”private extern”淌哟,設(shè)了后會減小體積。
8辽故、Strip Linked Product:DEBUG下設(shè)為NO徒仓,RELEASE下設(shè)為YES,用于RELEASE模式下縮減app的大刑芄浮掉弛;
2018.7.17新增
9症见、編譯器優(yōu)化,去掉異常支持殃饿。Enable C++ Exceptions谋作、Enable Objective-C Exceptions設(shè)置為NO,Other C Flags添加-fno-exceptions
10壁晒、利用AppCode?檢測未使用的代碼:菜單欄?->Code->InspectCode
最后要說:xcode BulidSetting中的設(shè)置都可以區(qū)分debug和release瓷们,如果覺得在開發(fā)的時候還想用到這些,就把debug和release分開設(shè)置就可以了