1.編譯器的優(yōu)化級別?
Build Settings -> Optimization Level 挣饥,release版 選擇 Fastest,Smallest 這個選項會開啟那些不增加代碼大小的全部優(yōu)化科贬,并讓可執(zhí)行文件盡可能小 (默認(rèn)就是這個了)篷店。
2.去除符號信息?
Strip Linked Product / Deployment Postprocessing / Symbols Hidden by Default 在release版本應(yīng)該設(shè)為yes,可以去除不必要的調(diào)試符號搁痛。Symbols Hidden by Default會把所有符號都定義成”private extern”芽淡,詳細(xì)信息見官方文檔茶凳。(注:Cocoapods子工程 不可以設(shè)置 Symbols Hidden by Default)
這些選項目前都是XCode里release的默認(rèn)選項舶替,但舊版XCode生成的項目可能不是令境,可以檢查一下。
3.資源優(yōu)化
資源壓縮(png有損/無損壓縮 顾瞪,js/html壓縮舔庶,音視頻壓縮)
去除無用資源
非必須資源按需下載On Demand Download
(注:圖片 無損壓縮幾乎沒有效果,因為 打包過程中 Xcode會把之前處理過的逆轉(zhuǎn)回來)
4.對于純OC項目
Cocoapods不要使用use_frameworks!如果使用會帶來大約10%-25%的包體增大(可怕??)陈醒。
Swift 和 OC 混編 編譯階段也會加入 一些Swift依賴庫 大約增加 6MB惕橙。
嘗試了以上步驟,我的App 成功 從 28MB -> 16MB
參考文獻(xiàn):
1. http://blog.cnbang.net/tech/2544/
2.http://blog.163.com/l1_jun/blog/static/1438638820169242493464/
3.http://stackoverflow.com/questions/5264449/why-is-my-app-5mb-larger-on-the-app-store