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
}