android上的Meteor.loginWithGoogle错误10
Posted
技术标签:
【中文标题】android上的Meteor.loginWithGoogle错误10【英文标题】:Meteor.loginWithGoogle error 10 on android 【发布时间】:2018-02-01 22:41:07 【问题描述】:我使用下面的 Meteor.loginWithGoogle 函数使用谷歌登录。 它在浏览器上运行,但是当我构建到 apk 时它失败了(控制台日志是 error 10)。
handleLoginError(err, service)
console.error(err);
Meteor.loginWithGoogle(, (err) =>
if (err)
this.handleLoginError(err, 'google');
else
this.handleLoginSuccess();
);
【问题讨论】:
一些额外的信息会很有帮助,堆栈跟踪,实际的网络调用和结果,诸如此类。 Quey 和@Peteor Olson 你检查过docs on properly releasing to the playstore(尤其是“android Play Store”部分) 【参考方案1】:刚刚在https://forum.ionicframework.com/t/google-login-error-10/93230/4找到了解决方案
在您的情况下,Cordova 未正确签署您的 APK。这就是为什么错误只发生在apk中的原因。您可以通过创建一个有效的密钥库来解决这个问题,Cordova 可以使用它来签署 apk。
选项 1
您可以使用例如创建密钥库这个命令:keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
确保根据您的需要对其进行编辑。如果你想了解更多关于这个命令的信息,可以阅读this answer。
接下来,您需要使用以下命令从刚刚生成的密钥中获取 SHA1:keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
您可以使用此 SHA1 从https://developers.google.com/mobile/add?platform=android&cntapi=signin 获取您的令牌、ID 和密钥
使用命令meteor build android --release
构建您的应用并生成一个apk 文件。
最后你可以使用命令jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name
用密钥库对生成的apk 文件进行jar 签名。
选项 2
或者,您可以创建一个签名属性文件platforms/android/debug-signing.properties
,其中包含您的密钥库文件,密码如下所示。示例:
keyAlias=yourkeyAlias
keyPassword=yourkeyPassword
storeFile=theFileContainingTheKeystore
storePassword=yourStorePassword
您可以在发布文档中获得更多信息:https://ionicframework.com/docs/v1/guide/publishing.html
【讨论】:
请注意,cordova build android --release
必须是 meteor build
,因为 cordova 嵌入在 Meteor 环境中。编辑见docs
非常感谢您提供的信息!我刚刚编辑了答案。
我终于让它工作了。最后,我需要两个细节:1)我必须创建一个 Google Firebase 项目,在那里添加 Google 登录方法,并在项目设置中添加应用程序的 SHA1 证书。它自动在我之前获得客户端 ID 的 Google API 控制台中创建了新凭据。 2) Google Play 自动为我处理了应用签名,所以我只需要从 Google Play 控制台复制 SHA 证书即可。
似乎答案developers.google.com/mobile/… 中的链接现在正在重定向到Google Firebase,所以我很困惑,不知道我必须创建一个Firebase 项目。以上是关于android上的Meteor.loginWithGoogle错误10的主要内容,如果未能解决你的问题,请参考以下文章
ListView 上的 LongPress 与 Android 上的超链接
Android 9 上的 android.database.sqlite.SQLiteCantOpenDatabaseException