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

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

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

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

  1. Найдите ключ iOS API для своего проекта на странице «Учетные данные» раздела «API и службы» консоли Google Cloud.

  2. В отладочной сборке настройте проверку приложений на использование поставщика отладки. Вам нужно будет указать ключ 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. В разделе «Проверка приложений» консоли Firebase выберите «Управление токенами отладки» в дополнительном меню вашего приложения. Затем зарегистрируйте токен отладки, который вы зарегистрировали на предыдущем шаге.

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

После того как вы зарегистрируете токен, конечные точки OAuth 2.0 Google примут его как действительный для вашего проекта.

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

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

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

  1. В разделе «Проверка приложений» консоли 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. В отладочной сборке настройте проверку приложений на использование поставщика отладки. Вам нужно будет указать ключ 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
    

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