Flutter AAB上传Google Play提示未签名,求Google代签配置方法
解决Flutter AAB上传Google Play提示未签名的问题
你搞错了一个关键点:即使选择「由Google Play签名发布」,你本地构建的AAB也必须先用上传密钥完成签名。Google Play是用它托管的应用签名密钥给最终用户下载的APK做签名,而上传的AAB需要你用上传密钥签名来证明身份,不然Google没法验证包的合法性。
按以下步骤操作即可解决:
1. 生成上传密钥(如果还没有)
打开终端,执行以下命令生成JKS格式的上传密钥库:
keytool -genkey -v -keystore upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
执行过程中会要求你设置密钥库密码和密钥密码,记得保存好。生成的upload-keystore.jks文件放到android/app目录下。
2. 配置密钥信息到gradle.properties
在项目根目录的gradle.properties文件中添加以下内容(替换成你自己的密码和文件名):
MYAPP_UPLOAD_STORE_FILE=upload-keystore.jks MYAPP_UPLOAD_KEY_ALIAS=upload MYAPP_UPLOAD_STORE_PASSWORD=你的密钥库密码 MYAPP_UPLOAD_KEY_PASSWORD=你的密钥密码
3. 修改android/app/build.gradle的签名配置
在android代码块中添加签名配置,然后关联到release构建类型:
android { // ... 其他已有配置 // 添加签名配置 signingConfigs { upload { storeFile file(MYAPP_UPLOAD_STORE_FILE) storePassword MYAPP_UPLOAD_STORE_PASSWORD keyAlias MYAPP_UPLOAD_KEY_ALIAS keyPassword MYAPP_UPLOAD_KEY_PASSWORD } } buildTypes { release { minifyEnabled true debuggable false // 关联上传密钥签名配置 signingConfig signingConfigs.upload } } }
4. 重新构建并上传
执行命令重新构建签名后的AAB:
flutter build appbundle --release
现在把生成的build/app/outputs/bundle/release/app-release.aab上传到Google Play,就不会再提示未签名了,Google会自动用应用签名密钥完成最终的签名流程。
内容的提问来源于stack exchange,提问作者AlienDecoy
相关产品推荐
相关产品推荐

