排查 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 类型(例如 Debug)中是成功的,但在其他 build 类型中则不成功

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

使用 Play 应用签名功能时,无密钥授权不起作用

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

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

API 密钥身份验证不起作用

如果 API 密钥授权不起作用,请按以下步骤操作:

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