将 App Check 与调试提供方搭配使用

如果您在为 App Check 注册应用后,想要运行您的 应用在 App Check 通常无法归类为有效的环境中, 例如在开发期间使用模拟器,或通过持续集成 (CI) 集成 您可以创建一个使用 App Check 调试提供程序,而不是 App Attest。

<ph type="x-smartling-placeholder">

在模拟器中使用调试提供程序

在模拟器中以交互方式运行应用时使用调试提供程序 (例如在开发期间),请执行以下操作:

  1. 凭据页面上查找项目的 iOS API 密钥 API 和Google Cloud 控制台的“服务”部分。

  2. 在调试 build 中,将 App Check 配置为使用调试提供程序。您 您需要指定在上一步中获取的 API 密钥。

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    
  3. 启动应用。在以下情况下, Xcode 控制台中会记录一个本地调试令牌: SDK 尝试向后端发送请求。例如:

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. App Check 部分中 在 Firebase 控制台中,从应用的“管理”页面选择管理调试令牌 菜单。然后,注册您在上一步中记录的调试令牌 操作。

    “管理调试令牌”菜单项的屏幕截图

在您注册令牌后,Google 的 OAuth 2.0 端点会接受该令牌, 适用于您的项目

由于此令牌允许访问您的身份验证端点,而无需 因此请务必确保设备的私密性不要将其承诺 并且如果已注册的令牌被盗,则将其撤消 即可直接在 Firebase 控制台中访问

在 CI 环境中使用调试提供程序

如需在持续集成 (CI) 环境中使用调试提供程序,请执行以下操作: 以下:

  1. App Check 部分中 在 Firebase 控制台中,从应用的“管理”页面选择管理调试令牌 菜单。然后,创建一个新的调试令牌。您需要在 下一步。

    由于此令牌允许用户在不影响 有效的设备,务必要确保设备的私密性。不要将其承诺 并且如果已注册的令牌被盗,则将其撤消 即可直接在 Firebase 控制台中访问

    “管理调试令牌”菜单项的屏幕截图

  2. 将您刚刚创建的调试令牌添加到 CI 系统的安全密钥存储区 (例如 GitHub Actions 的加密密钥 或 Travis CI 的加密变量

  3. 如有必要,请配置 CI 系统以使调试令牌可用 作为环境变量在 CI 环境中运行。为变量命名 类似于 APP_CHECK_DEBUG_TOKEN_FROM_CI

  4. 在 Xcode 中,将环境变量的名称为 FIRAAppCheckDebugToken$(APP_CHECK_DEBUG_TOKEN) 之类的代码, 值。

  5. 配置 CI 测试脚本以将调试令牌作为环境传递 变量。例如:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. 凭据页面上查找项目的 iOS API 密钥 API 和Google Cloud 控制台的“服务”部分。

  7. 在调试 build 中,将 App Check 配置为使用调试提供程序。您 您需要指定在上一步中获取的 API 密钥。

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    

当您的应用在持续集成环境中运行时,Google 的 OAuth 2.0 端点将接受 它发送的对您的项目有效的令牌。