关于Flutter iOS应用包大小分析及各模块空间占比查询的技术问询
Flutter iOS应用包大小分析:查询插件、资源及代码空间占比的方法
嘿,我刚好折腾过这个问题,给你整理几个实用的工具和命令,完全能满足你拆分各模块大小的需求:
一、Flutter官方自带分析命令(最推荐)
Flutter 3.10+版本自带了包大小分析功能,直接执行以下命令就能生成可视化报告:
flutter build ios --analyze-size
执行完成后,你会在build/ios/ipa_analysis目录下得到一个HTML报告,用浏览器打开就能看到非常详细的拆分数据:
- 所有pub.dev插件的大小占比,甚至能展开看到每个插件里的具体文件(比如Dart代码编译产物、原生iOS框架)贡献的大小
- 你的assets资源(图片、字体、音频等)的总大小和每个资源的单独大小
- Dart代码编译后的二进制文件大小,以及你自己写的iOS原生代码(ios/目录)编译后的框架大小
- 还能对比不同构建模式(Debug/Release/Profile)下的大小差异
二、Xcode原生分析报告(补充验证)
如果需要更贴近App Store实际分发的大小数据,用Xcode的归档分析更准确:
- 用Xcode打开
ios/Runner.xcworkspace - 选择
Product > Archive完成归档 - 在Organizer里选中这个归档,点击「Distribute App」,选择「Ad Hoc」或「Development」模式
- 一路按提示操作,最后会生成一个包含
App Thinning Size Report.txt的文件夹
这个报告里会列出:
- 每个Flutter插件对应的iOS原生框架(.framework文件)的大小
- 所有资源文件的大小拆分
- 主二进制文件(Runner.app)的详细大小组成
三、第三方工具(结构化终端输出)
如果需要在终端直接拿到结构化的大小数据,推荐用pub上的flutter_app_size_analyzer:
- 先添加开发依赖:
flutter pub add flutter_app_size_analyzer --dev
- 执行分析命令:
flutter pub run flutter_app_size_analyzer analyze --platform ios
它会在终端输出清晰的分类数据,包括:
- 每个pub依赖包的大小占比
- assets资源的总大小
- Dart代码和iOS原生代码的大小拆分
适合需要用脚本处理大小数据的场景
小技巧:单独验证插件大小
如果你怀疑某个插件占了太多空间,可以直接查看iOS Pods目录下的对应框架大小:
打开ios/Pods/[插件名称]/目录,找到对应的.framework文件,右键查看「显示简介」就能看到文件大小,这是插件原生部分的真实占用。
内容来源于stack exchange
相关产品推荐
相关产品推荐

