返回

将 Flutter iOS 编译产物分离以减小安装包大小

见解分享

前言

Flutter iOS 安装包的大小一直是开发者关注的重点。本文将手把手指导你分离 Flutter iOS 编译产物,包括数据段和资源,以有效减少安装包大小。

分离编译产物的必要性

Flutter iOS 应用在编译过程中会生成一个巨大的 ipa 包,其中包含了整个 Flutter 框架和应用代码。这种打包方式虽然方便,但会导致安装包体积庞大。

通过分离编译产物,我们可以将数据段(包含 Flutter 框架和代码)和资源(图标、图片、字体等)分开打包。这可以大大减小安装包的大小,尤其是当应用使用大量资源时。

分离编译产物的步骤

1. 创建 Xcode 项目

首先,创建一个新的 Xcode 项目并选择 Flutter 应用模板。

2. 安装 Flutter 插件

接下来,安装 Flutter 插件以支持编译产物分离。

flutter pub add flutter_modularized

3. 修改 App 代码

AppDelegate.swift 中,导入 Flutter 模块化插件并配置分离设置:

import FlutterModularized

override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // 分离编译产物
    FlutterModularized.setSplitAppInstallEnabled(true)
    FlutterModularized.setSplitDebugSymbolsEnabled(true)

    // ...

4. 编译分离产物

在 Xcode 中,选择 Product > Build for Profiling,然后在 Scheme 中选择你的真机设备。

5. 提取分离产物

编译完成后,在 Xcode 中,选择 Window > Organizer,找到你的应用,然后在 Products 选项卡中选择 App Thinning。

展开 "App Slices" 部分,找到数据段和资源包。

6. 将分离产物与应用捆绑

将分离的数据段和资源包与你的应用捆绑到 App Store Connect 中。

注意事项

  • 分离编译产物可能会增加构建时间。
  • 确保使用 Flutter 2.5 或更高版本。
  • 对于真机设备调试,需要使用 Xcode 12.5 或更高版本。

优势

分离 Flutter iOS 编译产物具有以下优势:

  • 减少安装包大小
  • 缩短应用加载时间
  • 改善设备存储空间利用率

总结

本文介绍了如何分离 Flutter iOS 编译产物以减小安装包大小。通过遵循这些步骤,你可以有效地优化你的应用的安装包大小,为用户提供更好的体验。