На этой странице показано, как включить проверку приложений в приложении iOS. Включив проверку приложений, вы гарантируете, что только ваше приложение сможет получить доступ к конечным точкам Google OAuth 2.0 от имени вашего проекта. См. обзор этой функции.
Проверка приложений использует App Attest , чтобы убедиться, что запросы OAuth 2.0 поступают от вашего подлинного приложения. App Check не использует App Attest для анализа риска мошенничества .
Прежде чем начать
Убедитесь, что у вас установлен Xcode 12.5 или новее.
Интегрируйте вход Google в свое приложение iOS с помощью библиотеки входа в Google .
1. Настройте свой проект
Проверку приложений можно включить в или в консоли Firebase . Не обязательно включать его в обоих местах, достаточно одного.
Для успешного включения проверки приложений для вашего клиента iOS должны быть выполнены следующие требования:- Вы должны указать идентификатор команды для вашего iOS-клиента.
- Вы не должны использовать подстановочный знак в идентификаторе пакета, поскольку он может относиться к более чем одному приложению. Это означает, что идентификатор пакета не должен содержать символ звездочки (*).
После включения проверки приложений вы начнете видеть метрики, связанные с запросами OAuth от вашего клиента, в режиме редактирования клиента OAuth. Запросы из непроверенных источников не будут блокироваться, пока вы не включите проверку приложений . Информация на странице мониторинга показателей может помочь вам определить, когда начинать принудительное применение.
При включении проверки приложений для приложения iOS вы можете увидеть ошибки, связанные с функцией проверки приложений. Чтобы исправить эти ошибки, попробуйте следующее:
- Убедитесь, что указанные вами идентификатор пакета и идентификатор группы действительны.
- Убедитесь, что вы не используете подстановочный знак для идентификатора пакета.
Консоль Firebase
Чтобы использовать проверку приложений при входе в Google, у вас должен быть проект Firebase.
Если ваше приложение уже использует Firebase, используйте тот же проект.
Если ваше приложение использует вход в Google, но не Firebase, у вас уже есть проект Google Cloud. Добавьте Firebase в свой проект Google Cloud, выбрав его при создании нового проекта в консоли Firebase.
Если вы еще этого не сделали, добавьте свои приложения iOS в проект Firebase, используя страницу настроек проекта в консоли Firebase.
Зарегистрируйте свои приложения, чтобы использовать проверку приложений у поставщика App Attest в разделе «Проверка приложений» консоли Firebase.
Убедитесь, что все клиенты OAuth вашего проекта связаны с приложением.
Если у вас есть несвязанные клиенты, в разделе « Удостоверение Google для iOS» на странице «Проверка приложений» вы увидите сообщение: «У вас есть n клиенты OAuth, требующие дополнительной настройки».
Кроме того, если вы удалили некоторые клиенты OAuth после их настройки в проверке приложений, вы увидите сообщение: «У вас есть n переопределений без соответствующего клиента OAuth». Вы можете безопасно выполнить очистку, удалив эти переопределения.
Вы можете связать несвязанные клиенты с существующим или новым приложением на странице клиентов OAuth в консоли Firebase.
2. Добавьте библиотеку входа в Google в свое приложение.
В своем проекте Xcode установите для зависимости входа в Google версию
8.0.0
или выше:СЗМ
Установите для правила зависимости
googlesignin-ios
версию8.0.0
или выше.Какао-стручки
Обновите свой
Podfile
:source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/firebase/SpecsDev.git' target 'YourAppName' do use_frameworks! pod 'GoogleSignIn','~> 8.0' :git => 'https://github.com/google/GoogleSignIn-iOS.git' pod 'GoogleSignInSwiftSupport' # If you use SwiftUI. end
Затем запустите
pod install
и откройте созданный файл.xcworkspace
.В Xcode добавьте в свое приложение возможность App Attest .
В файле
.entitlements
вашего проекта установите для среды App Attest значениеproduction
.
3. Инициализировать проверку приложения
В методе didFinishLaunchingWithOptions
делегата вашего приложения вызовите GIDSignIn.sharedInstance.configure(completion:)
. Вам следует вызывать этот метод как можно раньше в жизненном цикле вашего приложения, чтобы минимизировать задержку, воспринимаемую пользователем.
import SwiftUI
import GoogleSignIn
class AppDelegate: NSObject, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
#if targetEnvironment(simulator)
// Configure for debugging.
// See: https://developers.google.com/identity/sign-in/ios/appcheck/debug-provider
#else
GIDSignIn.sharedInstance.configure { error in
if let error {
print("Error configuring `GIDSignIn` for Firebase App Check: \(error)")
}
}
#endif
return true
}
}
@main
struct YourAppNameApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
// ...
}
Следующие шаги
После установки библиотеки App Check в ваше приложение начните распространять обновленное приложение среди своих пользователей.
Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом к конечным точкам аутентификации Google, но конечные точки не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе «Проверка приложений» консоли Firebase.
Мониторинг показателей
Однако прежде чем включать принудительное применение, вы должны убедиться, что это не повредит работе существующих законных пользователей. С другой стороны, если вы заметили подозрительное использование ресурсов вашего приложения, возможно, вам захочется включить принудительное применение раньше.
Чтобы принять это решение, вы можете просмотреть показатели проверки приложений для входа в Google .
Включить принудительное выполнение проверки приложений
Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы сможете включить принудительное применение проверки приложений .
Используйте проверку приложений в средах отладки
Если после регистрации вашего приложения для проверки приложений вы хотите запустить его в среде, которую проверка приложений обычно не классифицирует как допустимую, например, в симуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создайте отладочную сборку вашего приложения, которая использует поставщика отладки App Check вместо App Attest.
См. раздел «Использование проверки приложений с поставщиком отладки» .