Flutter Framework iOS减包

2,105 阅读1分钟

这是一篇不成熟的文章,因为本文的方案不一定能用上,但还是写出来吧,仅供参考。

前面两篇文章分别分析了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来说,已经很小了。