https://www.jianshu.com/p/a49d59b01669
項目打包之后.ipa包的大小是118.9M,上傳到App Store后iPhone6s上顯示85.5M,下載時間太長,所以找了一些優化方法,下面這些都是別人寫的自己試了一下確實好用,不是原創,只是記錄一下。
1、配置編譯選項
(Levels選項內)Generate Debug Symbols 設置為NO,這個配置選項應該會讓你減去小半的體積。注意這個如果設置成NO就不會在斷點處停下


2、舍棄架構armv7
armv7用於支持4s和4,4s是2011年11月正式上線,雖然還有小部分人在使用,但是追求包體大小的完全可以舍棄了。


3、去除無用的三方庫、代碼、readme
4、圖片處理
圖片是安裝包里占用空間最大的東西,我的項目中占用了一半的體積。
*用imageoptim壓縮圖片的大小
*一些比較大體積的背景圖片壓縮成.jpg格式的。
*用LSUnusedResource這個軟件查找項目中沒有用到的圖片,然后刪除,當然不一定特別准確,有一些[UIImage imageNamed:[NSString stringWithFormat:@"icon_%d",index]]這樣使用的圖片也會被列在未使用圖片中。
*使用Assets.xcassets來管理圖片也可以減小安裝包的體積
5、build setting 里 DEAD_CODE_STRIPPING = YES(好像默認就是YES)。 確定 dead code(代碼被定義但從未被調用)被剝離,去掉冗余的代碼,即使一點冗余代碼,編譯后體積也是很可觀的。


6、編譯器優化級別
Build Settings->Optimization Level有幾個編譯優化選項,release版應該選擇Fastest, Smalllest[-Os],這個選項會開啟那些不增加代碼大小的全部優化,並讓可執行文件盡可能小。


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




8、Strip Linked Product:DEBUG下設為NO,RELEASE下設為YES,用於RELEASE模式下縮減app的大小;


2018.7.17新增
9、編譯器優化,去掉異常支持。Enable C++ Exceptions、Enable Objective-C Exceptions設置為NO,Other C Flags添加-fno-exceptions






10、利用AppCode 檢測未使用的代碼:菜單欄 ->Code->InspectCode
最后要說:xcode BulidSetting中的設置都可以區分debug和release,如果覺得在開發的時候還想用到這些,就把debug和release分開設置就可以了
作者:Missmiss懵
鏈接:https://www.jianshu.com/p/a49d59b01669
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。