我有一个使用cordova构建的Android / IOS应用程序。
由于我现在正在使用ssl运行服务器,因此无法通过inappBrowser打开来自Google的请求。所以我必须使用带有this插件的本机登录。 (这是我发现的最可靠的)
阅读了很多帖子(this,this和..)后,我认为问题就在于我(尝试)生成密钥文件的方式
keytool -exportcert -keystore ~/.android/debug.keystore -list -v -alias myAppName
(空密码)提示
error de herramienta de claves: java.lang.Exception: El alias <myAppName> no existe (doesn't exist)
java.lang.Exception: El alias <myAppName> no existe
at sun.security.tools.keytool.Main.doPrintEntry(Main.java:1738)
at sun.security.tools.keytool.Main.doCommands(Main.java:1064)
at sun.security.tools.keytool.Main.run(Main.java:343)
at sun.security.tools.keytool.Main.main(Main.java:336)
这是否意味着它没有用?
关于错误:
window.plugins.googleplus.login(
{
'scopes': 'profile email',
'webClientId': 'xxxxxxxxx.apps.googleusercontent.com',
'offline': true,
},
function (obj) {
alert(JSON.stringify(obj)); /
},
function (msg) {
alert('error: ' + msg); // <--- It alerts 'error: 10'
}
);
任何提示都会非常受欢迎
-EDIT(现已解决) -
-EDIT 2 -
我试图以两种方式安装它(相同的结果)
cordova plugin add cordova-plugin-googleplus --save --variable REVERSED_CLIENT_ID=myreversedclientid
cordova plugin add https://github.com/EddyVerbruggen/cordova-plugin-googleplus --save --variable REVERSED_CLIENT_ID=myreversedclientid
(多次,在#34之前和之后;设置&#34; .key)
-EDIT 3 -
BTW,这个错误是什么意思? (无法找到它)
答案 0 :(得分:2)
对我来说错误10发生在keytool生成的SHA1(我用来将应用程序添加到google)与build apk的sha不匹配时。我修复的方法是将google项目的SHA1编辑为build apks SHA1
1 - 首先,构建apk
cordova build android --device --verbose --stacktrace --debug
2 - 查看apk的路径。它将在projectfolder / platforms / outputs / apk / android-debug.apk
中3 - 获取apk的SHA1
keytool -list -printcert -jarfile <path to your apk>
它将输出包含SHA1的详细信息。复制此项并替换google项目应用程序中的SHA1。
4 - 转到firebase控制台打开应用程序编辑SHA1。复制构建apk的SHA1以替换我们在创建应用程序时最初粘贴的先前SHA1。
答案 1 :(得分:1)
我似乎找不到GoogleService-Info.plist文件。应该在哪个文件夹中?
由于我们谈论iOS,我认为GoogleService-Info.plist
文件丢失,这是一个问题。请查看此EddyVerbruggen/cordova-plugin-googleplus
要获取iOS REVERSED_CLIENT_ID,请在此处生成配置文件。此GoogleService-Info.plist文件包含安装期间您需要的REVERSED_CLIENT_ID。此值仅适用于iOS。
REVERSED_CLIENT_ID在Developer's Console上也称为“iOS URL Scheme”。
登录iOS会通过Google SDK将用户带到SafariViewController,而不是单独的Safari浏览器。
要生成配置文件,请转至:https://developers.google.com/mobile/add?platform=ios
在iOS项目的根目录中找到此文件
在我的情况下,GoogleService-Info.plist
文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CLIENT_ID</key>
<string>18643434937-j6ofvkktk1uklqjv61ecr75f1llqki0f.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.18643434937-j6ofvkktk1uklqjv61ecr75f1llqki0f</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.app.client</string>
<key>PROJECT_ID</key>
<string>app-c6c82</string>
<key>IS_ADS_ENABLED</key>
<false/>
<key>IS_ANALYTICS_ENABLED</key>
<false/>
<key>IS_APPINVITE_ENABLED</key>
<false/>
<key>IS_GCM_ENABLED</key>
<false/>
<key>IS_SIGNIN_ENABLED</key>
<true/>
<key>GOOGLE_APP_ID</key>
<string>1:68743434937:ios:b03bcd3b3f571a56</string>
</dict>
</plist>
对于Android google-services.json
:
转到:https://developers.google.com/mobile/add?platform=android
并在那里生成。
应该看起来像:
{
"project_info": {
"project_number": "68643434935",
"project_id": "myapp-c6c82"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:68643434935:android:71bc3a4035ab9002",
"android_client_info": {
"package_name": "com.agan.armoa"
}
},
"oauth_client": [
{
"client_id": "68643434935-mqm5s8lubfr5j5s3bj62eigbod0h083s.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.agan.armoa",
"certificate_hash": "759A66458E30A70628F2E6A66C46240E21676B72"
}
},
{
"client_id": "68643434935-bc48465luu0r77tufpf4fumv0bd5pta2.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "68643434935-gpdj67581deilm3refkgobuvneceisqt.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDB6g1-nMbZ9aZkic2dCz8QrcqHfCSDrsw"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 1
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:68643434935:android:b03bcd3b3f571a56",
"android_client_info": {
"package_name": "com.myapp.client"
}
},
"oauth_client": [
{
"client_id": "68643434935-25ciu2gccfv70m08sc7c4fr3v0gqe89m.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.myapp.client",
"certificate_hash": "E90A75A9AA4470337AE5ECD87C3416DDB1109BE1"
}
},
{
"client_id": "68643434935-bc48465luu0r77tufpf4fumv0bd5pta2.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "68643434935-gpdj67581deilm3refkgobuvneceisqt.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDB6g1-nMbZ9aZkic2dCz8QrcqHfCSDrsw"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 1
}
}
}
],
"configuration_version": "1"
}
[编辑2]
关于您的错误:
keytool -exportcert -list -v \ -alias project -keystore~ / .android / debug.keystore我收到此错误:error de herramienta de claves:java.lang.Exception:El archivodealmacéndeclaves no existe: /Users/toni/.android/debug.keystore java.lang.Exception:El archivodealmacéndeclaves no existe:/Users/toni/.android/debug.keystore
尝试运行:
keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"
生成~/.android/debug.keystore
另请查看:https://developer.android.com/studio/publish/index.html#debugmode
[编辑3]
error 10
表示:
public static final int DEVELOPER_ERROR
应用程序配置错误。此错误无法恢复 将被视为致命的。开发人员应该查看之后的日志 这可以确定更多可操作的信息。
常数值:10
请参阅DOCS和类似的错误解决方案:Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}