1. 程式人生 > >Flutter Framework iOS減包

Flutter Framework iOS減包

這是一篇不成熟的文章,因為本文的方案不一定能用上,但還是寫出來吧,僅供參考。

前面兩篇文章分別分析了Flutter Android/iOS產物構成及大小,和Flutter的命令列打包:

  1. Flutter Android/iOS包大小分析
  2. Flutter 命令列打包

因為Flutter 在iOS打release包的時候,其實打了arm64 armv7兩個平臺的Framework,理所當然,如果我們只打arm64的,大小肯定會減很多,但是這裡不是隨便就能減的,要看你的APP支援的指令集有哪些,如果你的APP只支援arm64的,那最好了,直接減,Flutter包大小几乎可以在減一半,但是如果你的APP的指令集需要支援armv7 和 arm64,這個方案就不適用了。

接下來看iOS如何減包。

Flutter iOS減包方法

拆分Flutter Framework的方法

有兩種

  1. 使用lipo命令
$lipo .../Flutter/Flutter.framework/Flutter  -thin arm64 -output .../Flutter
複製程式碼
  1. 使用xcode_backend.sh

首先要設定引數, local ARCHS="arm64"

然後執行

$/bin/sh xcode_backen.sh thin
複製程式碼

直接執行這個指令碼會報錯,具體使用請看這篇文章 Flutter 命令列打包

結論

包含 armv7 arm64兩種指令集的Flutter iOS產物大小有13.8M,但是如果只有arm64一種指令集的,大小就只有8M!8M大小在iOS來說,已經很小了。