Flutter - 部署
Flutter - 部署
Section titled “Flutter - 部署”一旦你的 Flutter 应用程序开发并测试完毕,最后一步就是构建发布版本并通过应用商店或其他分发方式将其部署给用户。本章涵盖准备和构建 Android 和 iOS 发布版本的基础知识。
在构建发布版本之前,请考虑以下步骤:
- 应用图标: 确保你已为 Android 和 iOS 添加了不同分辨率的相应应用图标。可以使用
flutter_launcher_icons等工具和包来自动化此过程。 - 应用名称:** 验证你的应用在设备上显示的名称。对于 Android,请检查
android/app/src/main/AndroidManifest.xml中的android:label。对于 iOS,请检查ios/Runner/Info.plist中的Display Name(通常通过 Xcode 配置)。 - 应用 ID / Bundle ID: 确认你的唯一标识符。对于 Android,请检查
android/app/build.gradle中的applicationId。对于 iOS,请检查ios/Runner.xcodeproj中的Bundle Identifier(通常在 Xcode 中通过 Runner > Signing & Capabilities 查看/编辑)。此 ID 在各自的应用商店中必须是唯一的。 - 版本控制: 更新版本号和构建号。这通常在
pubspec.yaml中的version键下管理(例如version: 1.0.0+1)。加号+前的部分是版本名称(用户可见),加号后的部分是版本代码(或构建号,每次发布都必须递增)。Flutter 工具会将此信息传播到原生构建文件。 - 代码签名(至关重要): 发布版本必须进行数字签名。这用于验证应用程序的作者并确保其未被篡改。
-
- Android: 需要创建上传密钥(upload key)和密钥库文件(keystore file)(
.jks或.keystore)。你需要在android/app/build.gradle文件中配置,使其在发布构建时引用此密钥库。请妥善保管此密钥!建议使用 Google Play 应用签名(Google Play App Signing),由 Google 管理最终的签名密钥。
- Android: 需要创建上传密钥(upload key)和密钥库文件(keystore file)(
-
- iOS: 需要一个 Apple Developer 账户。签名通过 Xcode 使用与你的开发者账户和应用 Bundle ID 关联的证书和配置文件进行管理。
- 审查依赖项: 确保所有依赖项都是必需且最新的。
- ProGuard/R8 (Android): 考虑为 Android 发布构建启用代码收缩和混淆,以减小应用大小并增加逆向工程的难度。在
android/app/build.gradle中进行配置。 - 移除调试代码: 确保在发布构建中移除或禁用
print语句、调试横幅(在MaterialApp中设置debugShowCheckedModeBanner: false)以及其他开发辅助功能。
构建 Android 应用
Section titled “构建 Android 应用”构建 APK
Section titled “构建 APK”APK(Android Package Kit)是 Android 操作系统用于分发和安装移动应用程序的标准包文件格式。你可以构建一个通用 APK 或按架构拆分的 APK。
命令:
flutter build apk此命令(默认情况下)会构建一个发布 APK,通常是经过优化并使用 AOT(Ahead-Of-Time)编译的。请确保你在 android/app/build.gradle 中设置了签名配置。
输出:
✓ Built build/app/outputs/flutter-apk/app-release.apk (4.8MB).生成的 APK 文件位于 build/app/outputs/flutter-apk/ 目录中。此文件可以直接安装到设备上或在 Play 商店外部分发。
如需更多控制(例如,为了减小大小而按 ABI 构建拆分 APK):
flutter build apk --split-per-abi构建 App Bundle
Section titled “构建 App Bundle”AAB(Android App Bundle)是推荐用于发布到 Google Play 的格式。你上传 AAB 后,Google Play 会生成并提供针对每个用户设备配置(ABI、屏幕密度、语言)优化的 APK,从而减小下载大小。
命令:
flutter build appbundle输出:
✓ Built build/app/outputs/bundle/release/app-release.aab (5.0MB).生成的 AAB 文件位于 build/app/outputs/bundle/release/ 目录中。将此文件上传到 Google Play Console。
安装发布版本
Section titled “安装发布版本”要在连接的设备或模拟器上安装特定的发布版本(例如,刚刚构建的 APK):
# 针对 APKflutter install --release
# 注意:直接安装 app bundle 通常需要特定工具。# 对于测试,安装发布 APK 更常见。构建 iOS 应用
Section titled “构建 iOS 应用”- macOS 机器。
- 安装了 Xcode。
- 一个 Apple Developer 账户。
- 在 Xcode 中配置了代码签名(证书、Bundle ID、配置文件)。
构建 IPA
Section titled “构建 IPA”IPA(iOS App Store Package)是用于分发 iOS 应用程序的存档文件格式。
命令:
flutter build ipa此命令会构建一个发布存档文件(.xcarchive),然后将其导出为 IPA 文件(.ipa)。它依赖于你在 Xcode 项目中设置的签名配置。
输出:
✓ Built build/ios/archive/Runner.xcarchive.✓ Built build/ios/ipa/YourAppName.ipa.生成的 IPA 文件位于 build/ios/ipa/ 目录中。此文件可以使用 Transporter 等工具或直接从 Xcode(通过 Organizer)上传到 App Store Connect。
备选方案:通过 Xcode 构建
Section titled “备选方案:通过 Xcode 构建”你也可以直接在 Xcode 中构建和归档你的 Flutter iOS 应用:
- 在 Xcode 中打开你的项目文件
ios/Runner.xcworkspace。 - 选择一个物理 iOS 设备或 ‘Any iOS Device (arm64)’ 作为构建目标。
- 转到 Product > Archive。
- 归档完成后,将出现 Xcode Organizer 窗口,显示你的归档文件。
- 从 Organizer 中,你可以验证应用,分发到 App Store Connect,或导出 IPA 文件用于其他分发方法(如 Ad Hoc 或 Enterprise)。
一旦你有了发布版本(Android 为 .aab 或 .apk,iOS 为 .ipa):
- Google Play 商店: 在 Google Play Console 中创建应用列表,上传你的 App Bundle(
.aab),填写商店详细信息,并遵循发布流程(测试轨道、分阶段发布、正式发布)。 - Apple App Store: 在 App Store Connect 中创建应用列表,上传你的 IPA(通常通过 Transporter 或 Xcode),提供元数据和截图,提交审核,然后发布。
- 其他方法: 你可以通过 Firebase App Distribution 进行测试分发,使用企业分发计划,或直接下载 APK 文件(仅限 Android,请谨慎使用)。
部署涉及细致的规划、遵守平台指南和彻底的测试。