標籤:settings 避免 版本 nbsp cas rip 第三方 symbols ima
項目裡有一個h5頁面需要原生化,這個頁面有大量的本地圖片,而這些圖又用了2x、3x兩套圖,其中有些圖片大到一張能達到好幾M,最終的結果是ipa的包體積巨大無比。於是試了好些方法,終於把ipa的體積減小了很多。接下來總結一些能讓app瘦身的方法。
1、 從圖片資源進行瘦身。
(1) 對圖片本身進行壓縮。設計師在設計大的圖片時對圖片進行壓縮一下,然後用戶端使用壓縮後的圖片,這樣能大大減少ipa包的體積。我項目中用到的那些很大的圖片設計師沒有對其進行壓縮,所以讓設計師幫把所有的大圖片都壓縮了一遍,這樣之前以M為單位的圖片能壓縮到以k為單位的圖片。大大減小了ipa的體積。
(2) 用戶端在工程中使用Assets.xcassets的方式管理圖片,盡量避免使用檔案夾的方式進行管理。因為採用Assets.xcassets的方式,編譯時間,Images.xcassets中的所有檔案會被打包為Assets.car的檔案,這樣也能一定程度上減小app體積
(3) 清除無用的圖片。在版本更新的時候,有些之前用到的圖片在新版本中未必會用得到,所以那些無用的圖片要記得及時清除。
(4) 盡量使用向量圖。 有人說這個方法對減小ipa體積沒啥大作用,不過不管有沒有用,我覺得這都是一個很值得提倡的方法。因為向量圖可以自己定義大小以及顏色,所以對於一張圖片,只需要一套圖即可。比如我們項目中的表徵圖,能用iconfont解決的我們都不會去才用切圖的方式。一個iconfont.ttf的包,裡面裝了幾十張的圖片也不過是十幾k的大小。
2、 整理項目中用到的第三方庫。
(1) 項目中沒有用到的第三方庫也記得要及時刪除。(2) 引入第三方庫要謹慎,學會評估引入這個庫是否值得。有時候為了一個功能引入了一個很大的第三庫,造成ipa體積的顯著增加,但是可能我們只用到了其中一小部分功能,那這個時候可以考慮自己實現這個功能,而不是引入該庫。
(3) 刪除三方庫中無用的圖片資源。有些第三方庫會帶有圖片資源,對於沒用到的圖片可以直接刪除。
3、 代碼層面的最佳化
(1) 未使用的代碼及時清理(2) 整理重複的代碼
4、 編譯選項的設定(均在Build Settings裡面設定)
對於這一塊,不是特別的懂,所以根據網上提供的一些方法,我試了一下,感覺以下方法確實能起到一定的作用,大家可以參考一下。(1) 將Deployment Postprocessing和Strip Linked Product選項 設定為YES。(2) 將Genetate Debug Symbols 預設為YES,設定為NO。(3) Symbols hidden by default設定為YES(4) Strip debug symbols during copy 設定為YES
iOS ipa 包最佳化