iOS項目優化-APP瘦身

前言

由於在上家創業公司被現在的公司收購,最終把兩個APP融合成一個APP,當時只是把代碼進行復制黏貼,後面一直在做開發,急着上線功能,所以我也沒有對APP進行優化。項目打包之後ipa包的大小是一百多兆,下載時間太長,年初比較閒,決定來優化安裝包,結合其他開發者的優化方法進行瘦身,最終變成80兆。

1、配置編譯選項 

(Levels選項內)Generate Debug Symbols  設置爲NO,這個配置選項應該會讓你減去小半的體積。注意這個如果設置成NO斷點不生效。

2、捨棄架構armv7

armv7用於支持4s和4,現在的使用率極低,完全可以捨棄了。

3、去除無用的三方庫、代碼、圖片

4、圖片處理

項目中的圖標文件是被小夥伴們直接放在工程目錄下面的,裏面有1x、2x和3x的圖片,當然打包的時候這些文件也都被打包進去了。我這裏做的就比較簡單了我把圖片放在Xcode自帶的圖片管理工具裏面Images.scasssets,這樣的好處就是打包的資源包中的圖片會被放到Assets.car.圖片有被壓縮;此時若用[[NSBundle MainBundle] pathForResource:  ofType: ]來訪問時訪問不到的。同時你也無法像平常一樣輕易的拿到被人的圖片資源了,不用再爲多像素的圖片命名。mages.xcassets會自動的排列不同像素的圖片。
5、編譯器優化級別

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

6、可執行文件瘦身

LinkMap文件是Xcode產生可執行文件的同時生成的鏈接信息,用來描述可執行文件的構造成分,包括代碼段(__TEXT)和數據段(__DATA)的分佈情況。只要設置Project->Build Settings->Write Link Map File爲YES,build完後就可以在設置的路徑看到LinkMap文件了。

我們可以用腳本從linkmap中統計出每個.o目標文件佔用的體積和每個.a靜態庫佔用的體積 【腳本鏈接

也可以使用clang plugin 或 mach-o 查找無用方法的方案。

https://github.com/netyouli/WHC_Scan 這個工具也可以使用,作爲輔助參考,但僅限於OC代碼。

思維導圖:

參考資料:https://www.jianshu.com/p/991278b459ff

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章