Xamarin 调试密钥库似乎已更改

Xamarin Debug Keystore Seems to have Changed

我正在 Xamarin Studio 中使用 Xamarin.Android 开发一个 Android 应用程序。它使用 Google Play 游戏服务。

该项目有 运行 并测试了到目前为止的查找。昨天我将我的开发 PC 从 Windows 7 升级到 Windows 8.1。在此过程中,我还必须重新安装 Xamarin Studio。

现在,当我的应用程序尝试连接到 Google Play 时,失败并显示错误 "RESULT_APP_MISCONFIGURED",据我所知,这意味着我的应用程序未获得访问 [=33] 的适当授权=] 播放 API。然而,实际上什么都没有改变。

我测试了旧版本的应用程序,它仍然可以连接到 Google Play API。代码本身没有任何变化,所以我认为这一定与我最近升级Windows或最近重新安装Xamarin Studio有关。

有什么想法可以帮助缩小问题范围吗?调试密钥库是否可能发生了某种变化?

一条额外的线索:当我尝试将部署构建到装有较旧的可用应用程序版本的设备时,我收到以下错误:

Deployment failed because of an internal error: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

然后我必须手动卸载旧版本才能部署新版本。

是的,调试密钥库是 Xamarin 安装的一部分,如果您重新安装 Xamarin,它会发生变化。您需要在 Google 控制台上更新密钥签名,这次创建一个密钥库并将其隐藏,确保其安全(可以这么说)。

正如已经指出的那样,调试密钥库在 Xamarin.Android 的所有安装中都不相同。这是预期的行为。

使用 Play 服务时,您希望创建一个密钥库,最好一个用于调试,一个用于发布,或者作为同一密钥库中的不同别名(您自己想出来)。

然后,您可以通过向 .csproj 文件添加一些内容,使构建过程自动为您的应用签名。您可以在 docs.

中阅读更多相关信息
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <AndroidKeyStore>True</AndroidKeyStore>
    <AndroidSigningKeyStore>public.keystore</AndroidSigningKeyStore>
    <AndroidSigningStorePass>MyKeystorePassword</AndroidSigningStorePass>
    <AndroidSigningKeyAlias>MyKey</AndroidSigningKeyAlias>
    <AndroidSigningKeyPass>MyKeyPassword</AndroidSigningKeyPass>
</PropertyGroup>

您可以为 Debug 创建一个类似的块,也可以选择另一个别名或另一个密钥库。