Cordova 12501错误:应用程序构建的密钥库是什么

Cordova 12501错误:应用程序构建的密钥库是什么,cordova,ionic2,firebase-authentication,android-keystore,google-plus-signin,Cordova,Ionic2,Firebase Authentication,Android Keystore,Google Plus Signin,我使用的是Ionic 2。对于iOS,一切都能完美运行。对于Android我构建我的应用程序如下: ionic build android 对于Android构建,我需要一个SHA1密钥库来进行谷歌认证 我有一个Macintosh HD/Users/myname/.android/debug.keystore,因此根据说明,我使用(默认密码“android”)生成密钥库: 输出看起来是正确的。根据上述说明,我将此SHA1用于我的Android凭证: 但当我尝试登录时,我得到:error=12

我使用的是
Ionic 2
。对于
iOS
,一切都能完美运行。对于
Android
我构建我的应用程序如下:

ionic build android
对于
Android
构建,我需要一个
SHA1
密钥库来进行谷歌认证

我有一个
Macintosh HD/Users/myname/.android/debug.keystore
,因此根据说明,我使用(默认密码“
android
”)生成密钥库:

输出看起来是正确的。根据上述说明,我将此
SHA1
用于我的
Android凭证

但当我尝试登录时,我得到:
error=12501

从我看来,这与谷歌认证中的
SHA1
与应用程序安卓版本的
SHA1
不匹配有关

问题

我的
Android
构建使用的是什么
SHA1
?如何检查它是否与上面生成的凭据匹配

更新

通过阅读以下内容:

我理解,对于
Android
,我们需要将
SHA1
放在这里:

但是,在尝试此操作之后,我仍然得到
12501
错误

更新

我也尝试过以下方法,特别是
安卓设置
,但我认为它已经过时了。但他们确实说了以下几点:

如果您收到错误12501-用户已取消,这意味着您使用了错误的 在iOS/Android配置步骤中绑定ID。确保你 通过在应用程序中设置所需的Bundle ID,您正在使用正确的Bundle config.xml,并在设备设置期间使用该ID

如上图所示,
包名与
config.xml
中的
包ID
匹配

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.ionicframework.thewhozooXXXX" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

解决方案

对于Android,您需要使用
Web客户端ID
,而不是
Android客户端ID
(见图!)。这对我有用

代码:

然而,我不明白的是,对于
iOS
,它与
iOS客户端id
一起工作。所以没有一致性

更新

这似乎适用于使用
Web客户端的
Android
。如果查看返回值
googleData

googleData.providerData[0].displayName 
googleData.providerData[0].photoUrl

供将来参考,以便对像我这样的人有所帮助:

我的问题是范围参数:

{
    'scopes': 'email https://www.googleapis.com/auth/admin.directory.resource.calendar',
    'webClientId': 'XXXXXXXXXXX',
    'offline': true
}

它是一个用空格分隔的列表(我用逗号分隔)。逗号分隔(或除空格分隔以外的任何分隔)将导致12501。

如果您使用的是谷歌登录Cordova/PhoneGap插件,那么您可能需要阅读作者提到的部分,如果您不在
config.xml
中编辑包名,则可能会出现
12501
错误。谢谢。我现在不在电脑旁,但稍后会进行测试。问题:如果我有两个凭据(iOS和Android),那么在config.xml中我应该使用哪个客户端ID?我读到我应该用iOS的,因为Android不看它。这是正确的吗?如果我理解正确,对于混合应用程序(ios+android),您实际上只会使用一个客户端id,这将是谷歌提供的客户端id(从谷歌开发控制台)。有关这方面的更多信息,您可以阅读。当您在
config.xml
中谈论
包名
时,是
小部件id
?我的
小部件id
等于为OAuth客户端设置的凭据中的
包名。这也等于
AndroidManifest.xml
文件中的
。是的,小部件id。如果它们是相同的,而你仍然有问题,那么我不太确定问题是什么,我将在本周末在我的一个应用程序中实现这个插件,老实说,我并不期待它,设置似乎很乏味。如果我让它工作,我可以点击这里让你知道这些步骤。上面的似乎适用于Android。但对于iOS,我遇到了以下问题:
googleData.providerData[0].displayName 
googleData.providerData[0].photoUrl
{
    'scopes': 'email https://www.googleapis.com/auth/admin.directory.resource.calendar',
    'webClientId': 'XXXXXXXXXXX',
    'offline': true
}