이 페이지에서는 iOS 앱에서 앱 체크를 사용 설정하는 방법을 설명합니다. 앱 체크를 사용 설정하면 사용자의 앱만 프로젝트를 대신하여 Google의 OAuth 2.0 엔드포인트에 액세스할 수 있습니다. 이 기능의 개요를 참조하세요.
앱 체크는 App Attest를 사용하여 OAuth 2.0 요청이 인증된 앱에서 온 것인지 확인합니다. 앱 체크는 App Attest를 사용하여 사기 위험을 분석하지 않습니다.
시작하기 전에
Xcode 12.5 이상을 사용 중인지 확인합니다.
Google 로그인 라이브러리를 사용하여 Google 로그인을 iOS 앱에 통합합니다.
1. 프로젝트 설정
Google 로그인에서 앱 체크를 사용하려면 Firebase 프로젝트가 있어야 합니다.
앱에서 이미 Firebase를 사용하는 경우 동일한 프로젝트를 사용합니다.
앱에서 Google 로그인을 사용하지만 Firebase는 사용하지 않는다면 이미 Google Cloud 프로젝트가 있는 것입니다. Firebase Console에서 새 프로젝트를 만들 때 Firebase를 선택하여 Google Cloud 프로젝트에 추가합니다.
아직 추가하지 않았다면 Firebase Console의 프로젝트 설정 페이지를 사용하여 Firebase 프로젝트에 iOS 앱을 추가합니다.
Firebase Console의 앱 체크 섹션에서 App Attest 제공자에 앱 체크를 사용하도록 앱을 등록합니다.
프로젝트의 모든 OAuth 클라이언트가 앱에 연결되어 있는지 확인합니다.
연결 해제된 클라이언트가 있는 경우 앱 체크 페이지의 iOS용 Google ID 섹션에 추가 설정이 필요한 n 연결 해제된 OAuth 클라이언트가 있습니다.라는 메시지가 표시됩니다.
또한 앱 체크에서 설정한 후 일부 OAuth 클라이언트를 삭제한 경우 일치하는 OAuth 클라이언트가 없는 n 재정의가 있습니다라는 메시지가 표시됩니다. 이러한 재정의를 삭제하여 안전하게 정리할 수 있습니다.
Firebase Console의 OAuth 클라이언트 페이지에서 연결 해제된 클라이언트를 기존 앱이나 새 앱에 연결할 수 있습니다.
2. 앱에 베타 Google 로그인 라이브러리 추가
Xcode 프로젝트에서 Google 로그인 종속 항목을
7.1.0-fac-beta-1.1.0
버전으로 설정합니다.SPM
googlesignin-ios
의 종속 항목 규칙을 정확한 버전(7.1.0-fac-beta-1.1.0
)으로 설정합니다.CocoaPods
Podfile
를 업데이트합니다.source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/firebase/SpecsDev.git' target 'YourAppName' do use_frameworks! pod 'GoogleSignIn', :git => 'https://github.com/google/GoogleSignIn-iOS.git', :tag => '7.1.0-fac-beta-1.1.0' 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
// ...
}
다음 단계
앱에 앱 체크 라이브러리가 설치되면 업데이트된 앱을 사용자에게 배포하기 시작합니다.
업데이트된 클라이언트 앱이 Google 인증 엔드포인트에 전송하는 모든 요청과 함께 앱 체크 토큰을 전송하기 시작하지만 Firebase Console의 앱 체크 섹션에서 적용을 사용 설정할 때까지는 엔드포인트에서 토큰이 유효하도록 요구하지 않습니다.
측정항목 모니터링
하지만 적용을 사용 설정하기 전에 이렇게 해도 기존의 적법한 사용자가 방해를 받지 않는지 확인해야 합니다. 반면 앱 리소스 사용이 의심스러워 보이면 적용을 더 빨리 사용 설정하는 것이 좋습니다.
이러한 결정을 내리려면 Google 로그인의 앱 체크 측정항목을 참고하세요.
앱 체크 적용 사용 설정
앱 체크가 사용자에게 미치는 영향을 이해하고 계속 진행할 준비가 되면 앱 체크 적용을 사용 설정할 수 있습니다.
디버그 환경에서 앱 체크 사용
앱 체크에 앱을 등록한 후 개발 중 시뮬레이터와 같이 앱 체크가 일반적으로 유효하다고 분류하지 않는 환경이나 지속적 통합 (CI) 환경에서 앱을 실행하려면 App Attest 대신 앱 체크 디버그 제공자를 사용하는 앱의 디버그 빌드를 만들 수 있습니다.
디버그 제공자와 함께 앱 체크 사용을 참고하세요.