第 14 章 打包发布 Android 应用
14.1 生成签名密钥
keytool -genkey -v -keystore %USERPROFILE%\my-release-key.jks ^
-keyalg RSA -keysize 2048 -validity 10000 -alias upload
⚠️ 密钥文件与密码务必永久妥善保存
丢失后将无法再为同一应用发更新(包名 + 签名唯一确定应用)。不要提交到 git。
14.2 配置 android/key.properties 与 build.gradle
# android/key.properties(不进版本库)
storePassword=你的密码
keyPassword=你的密码
keyAlias=upload
storeFile=my-release-key.jks
// android/app/build.gradle 中读取并在 release 里引用 signingConfig
14.3 检查清单与打包
- 包名:
android/app/build.gradle的applicationId(发布前定好,之后不可改)。 - 应用名与图标:
AndroidManifest.xml的android:label;图标用flutter_launcher_icons包一键生成全尺寸。 - 版本号:
pubspec.yaml的version: 1.0.0+1(名称+构建号)。 - 权限最小化:只保留真正用到的权限。
flutter build apk --release # 通用 APK
flutter build apk --split-per-abi # 按 CPU 架构分包,体积更小
flutter build appbundle # 上架 Google Play 用 AAB(推荐)
产物在 build/app/outputs/。国内上架各应用商店用 APK;Google Play 用 AAB。