Как использовать App Check с поставщиком отладки на платформах Apple

После того как для бэкенд-службы будет включена функция App Check, функции приложения, которые зависят от этой бэкенд-службы, не будут работать в симуляторе или среде непрерывной интеграции (CI), поскольку эти среды не считаются действительными устройствами. Чтобы запускать приложение в этих средах во время разработки и тестирования, вам нужно создать отладочную сборку приложения, в которой вместо поставщика подтверждения для рабочей версии используется App Check поставщик для отладки.

Как использовать поставщика данных для отладки в симуляторе

Вот как использовать поставщика данных для отладки при запуске приложения в симуляторе в интерактивном режиме (например, при локальной разработке):

  1. В отладочной сборке перед использованием любых серверных сервисов Firebase создайте и задайте фабрику поставщика отладки App Check:

    Swift

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

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Получите токен отладки:

    1. Запустите приложение в симуляторе или на тестовом устройстве.

    2. Откройте консоль Xcode и найдите токен отладки App Check. Пример:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Скопируйте токен (например, 123a4567-b89c-12d3-e456-789012345678).

  3. Зарегистрируйте токен отладки в App Check:

    1. В консоли Firebase перейдите на вкладку Безопасность > App Check > Приложения.

    2. Найдите приложение, нажмите на дополнительное меню в виде трех точек () и выберите Управление токенами отладки.

    3. Следуйте инструкциям на экране, чтобы зарегистрировать токен отладки.

    Скриншот пункта меню &quot;Управление токенами отладки&quot; в консоли Firebase

После того как вы зарегистрируете токен в App Check, ваши серверные сервисы будут принимать его как действительный.

Этот токен позволяет получить доступ к вашим серверным сервисам без действительного устройства, поэтому его необходимо хранить в секрете. Не добавляйте его в общедоступный репозиторий и не включайте в рабочие сборки приложения. Если зарегистрированный токен будет скомпрометирован, немедленно удалите его с помощью функции Управление отладочными токенами в консоли Firebase.

Как использовать поставщика отладки в среде CI

Вот как использовать поставщика отладки для модульного тестирования в среде непрерывной интеграции (CI):

  1. В консоли Firebase создайте токен отладки:

    1. В консоли Firebase перейдите на вкладку Безопасность > App Check > Приложения.

    2. Найдите приложение, нажмите на дополнительное меню в виде трех точек () и выберите Управление токенами отладки.

    3. Следуйте инструкциям на экране, чтобы создать новый токен отладки.

    Этот токен позволяет получить доступ к вашим серверным сервисам без действительного устройства, поэтому его необходимо хранить в секрете. Не добавляйте его в общедоступный репозиторий и не включайте в рабочие сборки приложения. Если зарегистрированный токен будет скомпрометирован, немедленно удалите его с помощью функции Управление отладочными токенами в консоли Firebase.

    Скриншот пункта меню &quot;Управление токенами отладки&quot;

  2. Добавьте созданный токен отладки в защищенное хранилище ключей системы непрерывной интеграции (например, зашифрованные секреты GitHub Actions или зашифрованные переменные Travis CI).

  3. При необходимости настройте систему непрерывной интеграции так, чтобы токен отладки был доступен в среде CI как переменная среды. Назовите переменную, например APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. В Xcode добавьте в схему тестирования переменную среды с названием AppCheckDebugToken и значением, например $(APP_CHECK_DEBUG_TOKEN).

  5. Настройте сценарий тестирования CI так, чтобы он передавал токен отладки как переменную среды. Пример:

    xcodebuild test -scheme YOUR_TEST_SCHEME -workspace YOUR_PROJECT.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. В отладочной сборке перед использованием любых серверных сервисов Firebase создайте и задайте фабрику поставщика отладки App Check:

    Swift

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

    Objective-C

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

Когда приложение работает в среде CI, ваши серверные сервисы будут принимать отправленный им токен как действительный.