Xamarin Debug Keystore似乎已经改变了

时间:2015-03-17 05:30:32

标签: android xamarin xamarin.android xamarin-studio

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

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

现在,当我的应用尝试连接到Google Play时,它失败并显示错误" RESULT_APP_MISCONFIGURED"据我所知,我的应用未经授权可以访问Google Play API。然而,实际上没有任何改变。

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

关于什么有助于缩小问题范围的任何想法?是否有可能调试密钥库以某种方式发生了变化?

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

  

由于内部错误,部署失败:失败   [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

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

2 个答案:

答案 0 :(得分:2)

正如已经指出的那样,调试密钥库在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创建一个类似的块,也可以选择其他别名或其他密钥库。

答案 1 :(得分:1)

是的,debug keystore是Xamarin安装的一部分,如果重新安装Xamarin,它会更改。您需要更新Google控制台上的密钥签名,这次创建密钥库并将其隐藏起来,保持安全(可以这么说)。