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

为啥我不能从 Android 上的串行端口打开/写入?

Android 上的协程(第二部分):入门

Android 7.0 上的 Android WebView InflateException

为啥 Android 上的 JUnit 4 不工作?