Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

在 iOS 上通过调试提供程序使用 App Check

如果在为 App Check 注册您的应用程序后,您希望在 App Check 通常不会将其归类为有效的环境中运行您的应用程序,例如开发期间的模拟器,或从持续集成 (CI) 环境中运行您的应用程序,您可以创建使用 App Check 调试提供程序而不是真正的证明提供程序的应用程序的调试版本。

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

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

  1. 在您的调试版本中,在使用任何 Firebase 后端服务之前,创建并设置 App Check 调试提供程序工厂:

    迅速

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    目标-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. 在 Xcode 项目(v11.0 或更新版本)中启用调试日志:

    1. 打开产品>方案>编辑方案
    2. 从左边的菜单中选择运行,然后选择参数选项卡。
    3. 传承启动部分的参数,添加-FIRDebugEnabled
  3. 启动应用程序。当 SDK 尝试向后端发送请求时,将记录本地调试令牌。例如:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. 项目设置>应用程序检查的火力地堡控制台部分,从您的应用程序的溢出菜单管理调试令牌。然后,注册您在上一步中登录的调试令牌。

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

注册令牌后,Firebase 后端服务将接受它为有效。

由于此令牌允许在没有有效设备的情况下访问您的 Firebase 资源,因此将其保密至关重要。不要将其提交到公共存储库,如果注册的令牌遭到破坏,请立即在 Firebase 控制台中撤销它。

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

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

  1. 项目设置>应用程序检查的火力地堡控制台部分,从您的应用程序的溢出菜单管理调试令牌。然后,创建一个新的调试令牌。您将在下一步中需要令牌。

    由于此令牌允许在没有有效设备的情况下访问您的 Firebase 资源,因此将其保密至关重要。不要将其提交到公共存储库,如果注册的令牌遭到破坏,请立即在 Firebase 控制台中撤销它。

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

  2. 添加调试令牌,你刚刚创建的CI系统的安全密钥存储(例如,GitHub的操作加密机密或特拉维斯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. 在您的调试版本中,在使用任何 Firebase 后端服务之前,创建并设置 App Check 调试提供程序工厂:

    迅速

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    目标-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

当您的应用在 CI 环境中运行时,Firebase 后端服务将接受它发送的有效令牌。