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

После того как для бэкенд-службы будет включена проверка App Check, функции приложения, которые зависят от этой службы, не будут работать в симуляторе или среде непрерывной интеграции, поскольку эти среды не считаются действительными устройствами. Чтобы запустить приложение в этих средах во время разработки и тестирования, вам нужно создать отладочную сборку приложения, которая использует 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 перейдите в раздел Security (Безопасность) > App Check (Проверка приложений) > Apps (Приложения).

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

    3. Зарегистрируйте токен отладки, следуя инструкциям на экране.

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

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

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

Как использовать отладочный поставщик в среде непрерывной интеграции

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

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

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

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

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

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

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

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

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

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

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

    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];

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