flutter android打包过大 flutter打包体积太大
混合开发线上构建之flutter包大小优化
目录
- 前景
- 打包flutter
- flutter引擎包的来源
- 缩减fluter framework大小
- 使用Appuploader优化流程
- 总结
前景
在混合开发项目中,使用jenkins线上构建时,经常遇到flutter包体积过大的问题。一个release版本的flutter framework可能达到几百MB,这不仅影响代码上传、拉取速度,还会拖慢构建过程。本文将分享如何优化flutter包大小,并介绍如何使用Appuploader工具来简化iOS应用的上传流程。
打包flutter
线上构建通常使用flutter命令flutter build ios --no-codesign --release进行打包。执行后会在flutter项目的build文件夹内生成iOS文件夹,其中Release-iphoneos子目录包含打包出的framework。
提示:如果是混合开发项目,可能需要使用
flutter build ios-framework命令来避免内网三方库拉取问题。
flutter引擎包的来源
通过分析flutter build ios-framework命令的源码,可以发现flutter framework包存放在本地flutter环境的bin/cache/artifacts/engine目录中。当不使用cocoapods参数时,命令会直接复制Flutter.xcframework。
开发小技巧:可以使用
which flutter命令查看当前flutter环境的安装位置。
缩减fluter framework大小
一个完整的flutter framework可能达到440MB,但实际打包到ipa中后,flutter部分可能只有14.7MB左右。这是因为Xcode在打包发布时会进行优化处理,剥离bitcode并去除无用代码和资源。
我们可以使用Xcode命令手动优化:
xcrun bitcode_strip -r Flutter.framework/Flutter -o Flutter.framework/Flutter
经过测试,优化后的framework大小约为14.4MB,与最终ipa中的大小接近。
使用Appuploader优化流程
在优化flutter包大小后,可以使用Appuploader工具来简化iOS应用的上传流程。Appuploader是一款专业的iOS开发助手,可以帮助开发者:
- 快速打包和签名应用
- 自动管理证书和描述文件
- 一键上传到App Store Connect
- 提供详细的构建日志和错误分析
使用建议:将Appuploader集成到CI/CD流程中,可以显著提高构建和发布效率。
总结
优化flutter包大小的完整流程:
- 提取flutter的framework和App.framework
- 使用
bitcode_strip命令剥离bitcode - 将优化后的framework放入版本控制或私有仓库
- 使用Appuploader工具简化后续的构建和上传流程
注意事项:开发时仍需使用完整的flutter framework,仅在发布构建时应用这些优化措施。
更多推荐
所有评论(0)