【问题标题】:Why Firebase App Check fails in app release but not in debugging mode?为什么 Firebase App Check 在应用发布时失败,但在调试模式下却没有?
【发布时间】:2022-10-24 12:22:13
【问题描述】:

我有一个 React-Native 应用程序,我正在使用用于 React-Native 的 firebase SDK。我刚刚为我的应用程序实现了 App-Check,它在调试模式下工作正常,但在发布时失败。这是 index.js 中的 app-check 代码,它会在 app 初始化后立即触发:

 try {
   firebase.appCheck().setTokenAutoRefreshEnabled(true);
   firebase.appCheck().activate('ignored', true);
   firebase.appCheck().getToken(true).then(res => {
      GLOBAL.app_check = JSON.stringify(res.token);
      console.log("app check success, appchecktoken: " + JSON.stringify(res.token));
   }).catch((error) => {
      GLOBAL.app_check = '';
      console.error("app check failed: " + error); 
      alert('App check failed: ' + JSON.stringify(error));
      return;
   });
} catch (e) {
   console.log("Failed to initialize appCheck:", e);
   logErrors('appCheck failed: ', e);
}

正如您在上面看到的,我正在使用 alert 来打印错误消息,但这里是它打印的内容:

**应用检查失败:{} **

.. 对象为空。我如何检查它有什么问题?我在用发挥诚信安全网我添加了通过以下命令使用 Gradle 的签名报告获得的 SHA-252:

gradlew signingReport

我在这里做错了什么?

【问题讨论】:

  • 您还需要获取所有签名密钥的 sha256 证书指纹。在 Android 上,这将是您的上传密钥,如果您要部署到 Google Play,它将是 Google Play 商店签名密钥。如果我没记错的话,gradle 签名报告只会给你调试密钥

标签: android firebase react-native react-native-firebase firebase-app-check


【解决方案1】:

您需要为您的应用程序使用的所有签名密钥获取 SHA-256。使用调试密钥,调用 gradlew signingReport 会在它转到默认签名密钥位置 (~/.android/debug.keystore) 并针对此密钥库运行 java keytool 时提供默认别名 (android) 和密码 (android)。

对于您自己生成的发布密钥,您需要使用通常可以在系统路径或 jdk 目录中找到的 java keytool。 If you need help setting up keytool, I would refer to this stackoverflow question. 您可以使用现有的任何其他 keytool 变体,但我会使用 jdk 附带的那个作为其普遍信任的。然后您想使用 keytool 运行的命令是:

keytool -list -v -alias ${alias_of_keystore} -keystore ${location_of_keystore}

您可能希望使用自己的值子化别名和位置。使用默认调试键值,该命令将如下所示:

keytool -list -v -alias android -keystore ~/.android/debug.keystore

This video 谈论获取 SHA-256 的所有不同位置。例如,在您上传到 Google Play 商店后,如果您选择加入 Google Play 签名(我相信这是默认设置),您还需要从那里获取 SHA-256。视频的其余部分涵盖了数字资产链接,可以忽略。

【讨论】:

    猜你喜欢
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2012-02-25
    相关资源
    最近更新 更多