返回
将 Flutter iOS 编译产物分离以减小安装包大小
见解分享
2023-10-27 09:01:14
前言
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 编译产物以减小安装包大小。通过遵循这些步骤,你可以有效地优化你的应用的安装包大小,为用户提供更好的体验。