.NET MAUI AAB包上传Play Store提示调试模式签名问题求助
你上传时收到的提示:
你上传的APK或Android App Bundle使用了调试模式签名,你需要使用发布模式为APK或Android App Bundle签名。了解更多签名相关信息。该Android App Bundle未完成签名。
报错核心原因是生成的AAB要么用了系统默认的Debug调试签名,要么根本没有绑定发布签名配置,没走正规发布签名流程,按以下步骤操作即可正常上传:
步骤1:生成专属发布签名密钥库
不要使用开发环境默认生成的debug.keystore,用JDK自带的keytool工具生成自己的发布密钥,终端执行以下命令:
keytool -genkeypair -v -keystore my-release-key.keystore -alias maui-app-key -keyalg RSA -keysize 2048 -validity 10000
执行命令后按提示设置密钥库密码、别名对应密码,填写相关主体信息即可。生成的.keystore文件务必多端备份,一旦丢失后续将无法上传应用更新。
步骤2:给项目配置发布签名参数
打开MAUI项目的.csproj项目文件,找到针对Android Release编译模式的PropertyGroup节点,在节点内添加以下签名配置,替换成你自己的文件路径、密码、别名信息:
<AndroidKeyStore>True</AndroidKeyStore> <AndroidSigningKeyStore>你本地存放my-release-key.keystore的完整绝对路径</AndroidSigningKeyStore> <AndroidSigningStorePass>你设置的密钥库密码</AndroidSigningStorePass> <AndroidSigningKeyAlias>你设置的密钥别名,示例里是maui-app-key</AndroidSigningKeyAlias> <AndroidSigningKeyPass>你设置的别名对应密码</AndroidSigningKeyPass>
注意:如果项目代码要提交到公开代码仓库,不要把密码明文写在.csproj里,可以把签名配置写到本地不入库的Directory.Build.props文件中,避免密钥泄露。
步骤3:生成签好名的正式发布AAB
不要直接拿编译生成在bin/Release目录下的未走发布流程的包,要走正式发布流程生成,两种方式二选一即可:
- 命令行生成:在项目根目录打开终端,执行发布命令(注意把
net8.0-android替换成你项目实际使用的.NET版本对应的Android目标框架):
dotnet publish -f net8.0-android -c Release /p:AndroidPackageFormat=aab
生成完成后,签好名的正式AAB文件存放在bin/Release/[你的.NET安卓版本]/publish/目录下。
- Visual Studio可视化生成:右键项目选择「发布」,目标选择「Google Play」,按向导指引选中你之前生成的keystore文件、填对密码,确认编译模式选的是Release后完成发布流程即可。
步骤4:上传前校验签名有效性
拿到生成的AAB后,可以先用bundletool工具做校验,避免反复上传报错,执行命令:
bundletool validate --bundle=你生成的AAB文件完整路径.aab
校验没有签名相关报错就可以直接上传到Google Play控制台。
常见踩坑提醒
- 不要用Debug编译模式生成的包上传,Google Play会直接拦截
- 目前Google Play默认强制开启应用签名托管,你用自己密钥签完的包上传后平台会自动重签,不影响正常发布
- 密钥库密码、别名密码要记牢,每次生成更新包都需要用到相同的签名信息
内容的提问来源于stack exchange,提问作者Rikudou En Sof

