Используйте проверку приложений с поставщиком отладки на платформах Apple.

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

Используйте поставщик отладки в разработке

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

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

    Быстрый

    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. Включите ведение журнала отладки в вашем проекте Xcode (v11.0 или новее):

    1. Откройте Продукт > Схема > Редактировать схему .
    2. Выберите пункт Выполнить в левом меню, затем выберите вкладку Аргументы .
    3. В разделе «Аргументы, передаваемые при запуске» добавьте -FIRDebugEnabled .
  3. Запустите приложение. Локальный отладочный токен будет зарегистрирован, когда SDK попытается отправить запрос на бэкенд. Например:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. В разделе App Check консоли Firebase выберите «Управление токенами отладки» в дополнительном меню приложения. Затем зарегистрируйте токен отладки, созданный на предыдущем шаге.

    Скриншот пункта меню «Управление токенами отладки»

После регистрации токена внутренние службы Firebase примут его как действительный.

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

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

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

  1. В разделе App Check консоли Firebase выберите «Управление токенами отладки» в дополнительном меню приложения. Затем создайте новый токен отладки. Он понадобится вам на следующем шаге.

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

    Скриншот пункта меню «Управление токенами отладки»

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

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

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

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

    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()

    Objective-C

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

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