이 페이지에서는 iOS 앱에서 앱 체크를 사용 설정하는 방법을 설명합니다. 앱 체크를 사용 설정하면 앱만 프로젝트를 대신하여 Google의 OAuth 2.0 엔드포인트에 액세스할 수 있습니다. 이 기능의 개요를 참고하세요.
앱 체크는 App Attest를 사용하여 OAuth 2.0 요청이 인증된 앱에서 전송되었는지 확인합니다. 앱 체크는 사기 위험 분석을 목적으로 App Attest를 사용하지 않습니다.
시작하기 전에
Xcode 12.5 이상이 설치되어 있어야 합니다.
Google 로그인 라이브러리를 사용하여 iOS 앱에 Google 로그인을 통합합니다.
1. 프로젝트 설정
앱 확인은 Google API Console 또는 Firebase Console에서 사용 설정할 수 있습니다. 두 곳 모두에서 사용 설정할 필요는 없으며 한 곳만 사용 설정하면 됩니다.
Google API Console
iOS 클라이언트에서 앱 체크를 사용 설정하려면 다음 요구사항을 충족해야 합니다.- iOS 클라이언트의 팀 ID를 지정해야 합니다.
- 번들 ID는 두 개 이상의 앱으로 해석될 수 있으므로 와일드 카드를 사용하면 안 됩니다. 즉, 번들 ID에 별표 (*) 기호가 포함되어서는 안 됩니다.
앱 체크를 사용 설정하면 OAuth 클라이언트의 수정 보기에서 클라이언트의 OAuth 요청과 관련된 측정항목이 표시됩니다. 앱 체크를 적용하기 전에는 인증되지 않은 소스의 요청이 차단되지 않습니다. 측정항목 모니터링 페이지의 정보를 통해 언제 시정 조치를 시작해야 하는지 확인할 수 있습니다.
iOS 앱에 App Check를 사용 설정할 때 App Check 기능과 관련된 오류가 표시될 수 있습니다. 이러한 오류를 수정하려면 다음을 시도해 보세요.
- 지정한 번들 ID와 팀 ID가 유효한지 확인합니다.
- 번들 ID에 와일드 카드를 사용하지 않는지 확인합니다.
Firebase Console
Google 로그인과 함께 앱 확인을 사용하려면 Firebase 프로젝트가 있어야 합니다.
앱에서 이미 Firebase를 사용하고 있다면 동일한 프로젝트를 사용하세요.
앱에서 Firebase가 아닌 Google 로그인을 사용하는 경우 이미 Google Cloud 프로젝트가 있습니다. Firebase Console에서 새 프로젝트를 만들 때 Google Cloud 프로젝트를 선택하여 Firebase를 추가합니다.
아직 추가하지 않았다면 Firebase Console의 프로젝트 설정 페이지를 사용하여 Firebase 프로젝트에 iOS 앱을 추가합니다.
Firebase Console의 앱 체크 섹션에서 App Attest 제공자로 앱 체크를 사용하도록 앱을 등록합니다.
프로젝트의 모든 OAuth 클라이언트가 앱에 연결되어 있는지 확인합니다.
연결 해제된 클라이언트가 있는 경우 앱 확인 페이지의 iOS용 Google ID 섹션에 '추가 설정이 필요한 연결 해제된 OAuth 클라이언트가 n개 있습니다.'라는 메시지가 표시됩니다.
또한 App Check에서 OAuth 클라이언트를 설정한 후 일부를 삭제한 경우 '일치하는 OAuth 클라이언트가 없는 재정의가 n개 있습니다'라는 메시지가 표시됩니다. 이러한 재정의를 삭제하여 안전하게 정리할 수 있습니다.
연결이 해제된 클라이언트를 Firebase 콘솔의 OAuth 클라이언트 페이지에서 기존 앱 또는 새 앱에 연결할 수 있습니다.
2. 앱에 Google 로그인 라이브러리 추가
Xcode 프로젝트에서 Google 로그인 종속 항목을 버전
8.0.0
이상으로 설정합니다.SPM
googlesignin-ios
의 종속 항목 규칙을 버전8.0.0
이상으로 설정합니다.CocoaPods
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
// ...
}
다음 단계
앱에 앱 체크 라이브러리가 설치되면 업데이트된 앱을 사용자에게 배포하기 시작합니다.
업데이트된 클라이언트 앱이 Google의 인증 엔드포인트에 전송하는 모든 요청과 함께 앱 체크 토큰을 보내기 시작하지만 Firebase Console의 앱 체크 섹션에서 적용을 사용 설정할 때까지 엔드포인트에서는 토큰이 유효하지 않아도 됩니다.
측정항목 모니터링
하지만 적용을 사용 설정하기 전에 이렇게 해도 기존의 적법한 사용자가 방해를 받지 않는지 확인해야 합니다. 반면에 앱 리소스 사용이 의심스러워 보이면 적용을 더 빠르게 사용 설정하는 것이 좋습니다.
이 결정을 내리는 데 도움이 되도록 Google 로그인용 앱 체크 측정항목을 확인하세요.
앱 체크 적용 사용 설정
앱 체크가 사용자에게 미치는 영향을 이해하고 계속 진행할 준비가 되면 앱 체크 적용을 사용 설정할 수 있습니다.
디버그 환경에서 앱 체크 사용
앱 체크에 앱을 등록한 후 개발 중 시뮬레이터 또는 지속적 통합 (CI) 환경과 같이 앱 체크에서 일반적으로 유효하지 않다고 분류하는 환경에서 앱을 실행하려면 App Attest 대신 앱 체크 디버그 제공자를 사용하는 앱의 디버그 빌드를 만들면 됩니다.
디버그 제공자와 함께 앱 체크 사용을 참고하세요.