各位网友大家好
我关注了毛伊岛出版物文档
我按照这个过程
得到了aab文件我得到的结果是:
您上传了在调试模式下签名的 APK 或 Android App Bundle。您需要在发布模式下签署 APK 或 Android App Bundle。了解有关签名的更多信息。 Android 应用程序包未签名。
我该怎么做才能解决这个问题?
使用微软提供的文档进行了相同的尝试。仍然遇到同样的错误。我已经提供了要发布的配置,但仍然遇到应用程序处于调试模式的问题。
步骤:1:keytool -genkey -v -keystore myapp.keystore -alias key -keyalg RSA -keysize 2048 -validity 10000
步骤:2:
<PropertyGroup Condition="$(TargetFramework.Contains('-android')) and '$(Configuration)' == 'Release'">
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>myapp.keystore</AndroidSigningKeyStore>
<AndroidSigningKeyAlias>key</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>*******</AndroidSigningKeyPass>
<AndroidSigningStorePass>*******</AndroidSigningStorePass>
</PropertyGroup>
步骤:3:dotnetpublish-f:net6.0-android-c:Release
我也有同样的问题。
无论我是通过在发布模式下运行 Visual Studio、从命令行还是从我的 Azure CI 管道进行签名,Google Play 都不允许我上传已签名的 Android 应用程序包。
顺便说一下,如果您希望从 Azure 构建管道生成签名的 .aab,我建议您执行以下操作:
https://www.andreasnesheim.no/setting-up-ci-for-your-net-maui-android-app-in-azure-devops/
然后,您可以将签名的 .aab 工件连接到发布管道,通过执行以下操作推送到 Google Play:
https://damienaicheh.github.io/azure/devops/2021/10/25/configure-azure-devops-google-play-en.html
嗯,至少这就是我正在尝试做的事情。据我了解,您首先需要从 Google Play 创建手动发布,以便您的发布管道能够找到部署应用程序的位置。这就是我遇到上述问题的原因。
任何未来的更新将不胜感激!
如果您是从命令行构建,请检查您是否忘记了
/p:AndroidKeyStore=True
!
即使在 MSBuild 更新后的版本中,我的构建也开始由调试密钥进行签名。
我用于构建的命令:
dotnet build -c Release
-f net7.0-android33.0
/p:ApplicationVersion=1
/p:ApplicationDisplayVersion=test
/p:AndroidSigningKeyPass=mypass
/p:AndroidSigningStorePass=mypass
/p:AndroidSigningKeyStore=my.keystore
/p:AndroidSigningKeyAlias=key
这在
MSBuild version 17.5.0-preview-23061-01+040e2a90e
中效果很好。 aab 已使用指定密钥进行签名。
但是随着
MSBuild version 17.5.1+f6fdcf537
,我的发布版本突然开始使用调试密钥进行签名。分析详细日志后,我发现 AndroidKeyStore
必须设置为 true
才能考虑您的自定义键。不知道这个参数是新加的还是有bug没有考虑到。
添加
AndroidKeyStore
参数后,签名是正确的。
dotnet build -c Release
-f net7.0-android33.0
/p:AndroidKeyStore=True <--- add this
/p:ApplicationVersion=1
/p:ApplicationDisplayVersion=test
/p:AndroidSigningKeyPass=mypass
/p:AndroidSigningStorePass=mypass
/p:AndroidSigningKeyStore=my.keystore
/p:AndroidSigningKeyAlias=key
大家好,当我发现问题时,我遇到了同样的错误,几乎要放弃了。
仔细检查是否有任何拼写错误。
我的问题是,我在 .csproj 中编写了“AndroidSignedKeyStore”而不是“AndroidSigningKeyStore”。
你不会得到任何编译错误或任何东西,所以值得检查你是否有相同的错误。