排查 ARCore API 授权相关问题

请选择平台

免钥匙进入功能不起作用 (ERROR_NOT_AUTHORIZED)

与 ARCore API 服务器通信时抛出 ERROR_NOT_AUTHORIZED 时,请确保您的应用包含 com.google.android.gms:play-services-auth 库:

  1. 构建应用,然后使用 APK 分析器检查生成的工件。确保构建的应用二进制文件包含 com.google.android.gms.auth 软件包,并且其内容未重命名或缩减。
    • 如果不存在,请按照添加所需库中的说明操作,确保添加了该库,并且缩减设置正确无误。
  2. 使用 keytool 实用程序显示失败目标工件中的安全信息:

    AAB 工件

    keytool -printcert -jarfile artifact.aab

    APK 工件

    keytool -printcert -jarfile artifact.apk
  3. 确保 SHA-1 证书指纹与项目的 OAuth 2.0 客户端 ID 中使用的凭据一致。

  4. 确保您已在 Google Cloud 中为正确的项目启用 ARCore API

在某些 build 类型(例如调试 build)中,无钥匙授权会成功,但在其他 build 类型中则不会

如果无密钥授权在某些 build 中成功,但在其他 build 中失败,请确保失败工件中的指纹与 Google Cloud 控制台中列出的指纹一致。请参阅无密钥授权不起作用,然后按照相应步骤验证该工件的签名密钥指纹是否与 Google Cloud 中列出的指纹一致。

使用 Play 应用签名时,无钥匙授权不起作用

如果无密钥授权在本地 build 上有效,但在启用 Play 应用签名后上传到 Google Play 商店后无效,请确保在项目凭据中注册的 SHA-1 证书指纹与 Google 用于为您的应用签名的指纹一致:

如需了解详情,请参阅 Play 应用签名

API 密钥身份验证不起作用

如果 API 密钥授权无法正常运行,请按以下步骤操作:

  • 确保您已在 Google Cloud 中为正确的项目启用 ARCore API
  • 如果您启用了任何 API 密钥限制,请暂时停用这些限制。
  • 确保项目凭据中列出的 API 密钥与应用使用的 API 密钥完全匹配,且不含空格或任何其他字符。