iOS APP安裝包瘦身

資源瘦身

這個措施非常有用,并且效果顯著。因為編譯過程中,xib,png,mp3,mp4等等資源文件最終都會打包在ipa里面。
因此刪除無用的資源或者減小資源文件大小,對于減小包體積效果會非常好。

  • 刪除無用資源,利用人工非常麻煩,可以寫個腳本,通過字符串的簡單匹配就可以實現(xiàn)。
    這里我自己寫了一個掃描無用圖片的腳本:https://github.com/mushao1990/sortUnusedImage

  • 去掉1x圖
    現(xiàn)在至少都是2倍高清屏了,不需要1x的圖

  • 盡量使用Assets來管理資源
    蘋果在編譯階段會進行優(yōu)化,并且分發(fā)給用戶的圖只會包含其中一套。

  • 對于一些純色小圖標,可以使用iconFont

  • 可再生的圖片或者大圖,可以考慮使用網(wǎng)絡圖

  • 本地圖片,利用工具進行無損壓縮
    我對項目中的png圖片使用ImageOptim工具進行壓縮,效果很顯著

    image.png

    但是需要注意的是,Xcode默認是會對png圖片進行進行優(yōu)化,如果使用ImageOptim進行圖片壓縮后,蘋果會將壓縮給逆向。
    因此,如果使用ImageOptim進行壓縮,就需要關閉Xcode中的設置。ImageOptim認為蘋果的這項優(yōu)化其實作用沒有那么大,以下是摘抄:
    image.png

    這里是地址:https://imageoptim.com/xcode.html

  • 可以考慮使用webP圖片格式。這種格式的圖片會非常節(jié)省空間

  • 去除重復的第三方庫
    大公司項目,多人開發(fā)的情況下,會經(jīng)常出現(xiàn)一些功能相似的重復第三方。比如模型轉(zhuǎn)換,圖片框架等等。這個時候可以進行代碼評估,去掉重復的第三方。

  • 去除代碼中無用的類和方法

    因為我們的代碼最終被編譯在了可執(zhí)行文件內(nèi),因此類越多,方法越多,可執(zhí)行文件會越大。

    • 查找無用的selector
      github上有已經(jīng)寫好的腳本,地址: https://github.com/nst/objc_cover
      但是這個會連set和get方法以及一些對我們無用的方法也會輸出來,可以自己對腳本進行簡單更改。
      比如下面,對類名和方法名進行簡單過濾

      image.png

      它的原理是分析可執(zhí)行文件里的信息。因為類的內(nèi)存結(jié)構(gòu)和方法在編譯階段已經(jīng)處理好了。可以從可執(zhí)行文件里拿到:所有的方法(通過正則獲?。┮约?通過(_DATA.__objc_serefs)拿到所有引用到的方法。 兩個集合進行交叉就可以拿到所有未被引用的方法

    • 查找無用的類
      兩種方式:
      1.這個和找無用圖片一樣利用腳本掃描。
      2.利用__DATA.objc_classlis 和 __DATA.__objc_classrefs 獲取所有oc類和被引用的oc類,兩個集合交叉拿到所有未使用的oc類。

但是這里其實有個難點。打個比方:我們有個TestViewController,這個VC在外部已經(jīng)沒有地方使用了。但是vc又持有了三個類成員A,B,C,這三個類的實現(xiàn)文件里可能又引入了TestViewController的頭文件。那么通過上面的兩種方式檢查不到這四個類其實在項目里都沒有使用到,只是因為他們自己相互使用了就避開了掃描。這種情況該怎么辦?

  • 開啟bitCode
    這個措施其實不會影響包的大小。但是如果開啟了這個功能,將ipa上傳到appstore后,蘋果會拿著bitcode去重新編譯為可執(zhí)行程序。供用戶下載。這個時候用戶下載的ipa包里只有自己手機對應的指令集,因此會減小體積。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 參考公眾號:WeMobileDev APP開發(fā)中,總會想要去盡可能的優(yōu)化項目,這是我們作為程序員最基本的追求之一。...
    senpaiLi閱讀 1,831評論 0 3
  • App安裝包是由資源和可執(zhí)行文件兩部分組成,安裝包瘦身也是從這兩部分進行。 資源瘦身 1. 刪除無用的資源 工具:...
    Vinecnt閱讀 18,567評論 13 84
  • App安裝包是由資源和可執(zhí)行文件兩部分組成,安裝包瘦身也是從這兩部分進行。資源瘦身 刪除無用的資源工具:LSUnu...
    RobinYu閱讀 633評論 0 0
  • 摘要:以下列出了安裝包瘦身的無腦執(zhí)行流程,其中“奇技淫巧”部分為選做題 資源優(yōu)化 刪除無用圖片 使用LSUnuse...
    暖夏未眠丶閱讀 857評論 0 1
  • 安裝包主要由兩部分組成,資源文件以及可執(zhí)行文件,瘦身主要從這兩部分入手: 一、資源文件瘦身 1、刪除無用資源 現(xiàn)在...
    無邪8閱讀 2,087評論 0 14

友情鏈接更多精彩內(nèi)容