Bu sayfada, iOS uygulamasında App Check'i nasıl etkinleştireceğiniz gösterilmektedir. App Check'i etkinleştirdiğinizde, projeniz adına Google'ın OAuth 2.0 uç noktalarına yalnızca uygulamanızın erişebilmesini sağlarsınız. Bu özelliğe genel bakış için.
Uygulama Kontrolü, OAuth 2.0 isteklerinin gerçek uygulamanızdan geldiğini doğrulamaya yardımcı olmak için App Attest'i kullanır. Uygulama Kontrolü, sahtekarlık riskini analiz etmek için App Attest'i kullanmaz.
Başlamadan önce
Xcode 12.5 veya daha yeni bir sürümün yüklü olduğundan emin olun.
Google ile oturum açma kitaplığını kullanarak Google ile oturum açma özelliğini iOS uygulamanıza entegre edin.
1. Projenizi oluşturma
App Check, Google API Console veya Firebase konsolunda etkinleştirilebilir. Bu özelliği her iki yerde de etkinleştirmeniz gerekmez. Bir yerde etkinleştirmeniz yeterlidir.
Google API Console
iOS istemcinizde App Check'i başarıyla etkinleştirmek için aşağıdaki koşulların karşılanması gerekir:- iOS istemciniz için bir ekip kimliği belirtmeniz gerekir.
- Birden fazla uygulamaya çözümlenebileceğinden paket kimliğinizde joker karakter kullanmamalısınız. Bu nedenle, paket kimliği yıldız (*) sembolünü içermemelidir.
Uygulama Kontrolü'nü etkinleştirdikten sonra, OAuth istemcisinin düzenleme görünümünde istemcinizden gelen OAuth istekleriyle ilgili metrikleri görmeye başlarsınız. Uygulama Kontrolü'nü zorunlu kılana kadar doğrulanmamış kaynaklardan gelen istekler engellenmez. Metrik izleme sayfasındaki bilgiler, yaptırım uygulamaya ne zaman başlayacağınızı belirlemenize yardımcı olabilir.
iOS uygulamanızda Uygulama Kontrolü'nü etkinleştirirken Uygulama Kontrolü özelliğiyle ilgili hatalar görebilirsiniz. Bu hataları düzeltmek için aşağıdakileri deneyin:
- Belirttiğiniz paket kimliğinin ve takım kimliğinin geçerli olduğunu doğrulayın.
- Paket kimliği için joker karakter kullanmadığınızı doğrulayın.
Firebase Konsolu
Google ile Giriş'i App Check ile kullanmak için bir Firebase projeniz olmalıdır.
Uygulamanızda Firebase zaten kullanılıyorsa aynı projeyi kullanın.
Uygulamanızda Firebase değil Google ile Giriş kullanılıyorsa zaten bir Google Cloud projeniz vardır. Firebase konsolunda yeni bir proje oluştururken Google Cloud projenizi seçerek Firebase'i ekleyin.
Ayrıca: Firebase projeleri ile Google Cloud arasındaki ilişki
Henüz yapmadıysanız Firebase konsolunun Proje ayarları sayfasını kullanarak iOS uygulamalarınızı Firebase projenize ekleyin.
Uygulamalarınızı, Firebase konsolunun Uygulama Kontrolü bölümünde App Attest sağlayıcısıyla Uygulama Kontrolü'nü kullanacak şekilde kaydedin.
Projenizdeki tüm OAuth istemcilerinin bir uygulamaya bağlı olduğundan emin olun.
Bağlantısı kaldırılmış istemcileriniz varsa Uygulama Kontrolü sayfasının iOS için Google Kimliği bölümünde "Ek kurulum gerektiren n bağlantısı kaldırılmış OAuth istemciniz var." mesajını görürsünüz.
Ayrıca, App Check'te ayarladıktan sonra bazı OAuth istemcilerini sildiyseniz "Eşleşen OAuth istemcisi olmayan n geçersiz kılma işleminiz var" mesajını görürsünüz. Bu geçersiz kılmaları silerek güvenli bir şekilde temizleme yapabilirsiniz.
Bağlantısı kaldırılmış istemcileri, Firebase konsolunun OAuth istemcileri sayfasında mevcut veya yeni bir uygulamaya bağlayabilirsiniz.
2. Google ile oturum açma kitaplığını uygulamanıza ekleme
Xcode projenizde Google ile Giriş bağımlılığını
8.0.0
veya daha yüksek bir sürüme ayarlayın :SPM : Stratejik İş Ortağı Yöneticisi
googlesignin-ios
bağımlılık kuralını8.0.0
sürümüne veya daha yüksek bir sürüme ayarlayın.CocoaPods
Podfile
öğenizi güncelleyin: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
Ardından
pod install
komutunu çalıştırın ve oluşturulan.xcworkspace
dosyasını açın.Xcode'da uygulamanıza App Attest özelliğini ekleyin.
Projenizin
.entitlements
dosyasında App Attest ortamınıproduction
olarak ayarlayın.
3. Uygulama Kontrolü'nü başlatma
Uygulama temsilcinizin didFinishLaunchingWithOptions
yönteminde GIDSignIn.sharedInstance.configure(completion:)
yöntemini çağırın. Kullanıcı tarafından algılanan gecikmeyi en aza indirmek için bu yöntemi uygulamanızın yaşam döngüsünde mümkün olduğunca erken çağırmalısınız.
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
// ...
}
Sonraki adımlar
Uygulama Denetimi kitaplığı uygulamanıza yüklendikten sonra güncellenen uygulamayı kullanıcılarınıza dağıtmaya başlayın.
Güncellenen istemci uygulaması, Google'ın kimlik doğrulama uç noktalarına yaptığı her istekle birlikte Uygulama Kontrolü jetonları göndermeye başlar ancak Firebase konsolunun Uygulama Kontrolü bölümünde zorunlu kılmayı etkinleştirmediğiniz sürece uç noktalar, jetonların geçerli olmasını gerektirmez.
Metrikleri izleme
Ancak zorunlu kılmayı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın hizmetten yararlanmasını engellemeyeceğinden emin olmanız gerekir. Diğer yandan, uygulama kaynaklarınızın şüpheli bir şekilde kullanıldığını görüyorsanız yaptırımı daha erken etkinleştirmek isteyebilirsiniz.
Bu kararı vermenize yardımcı olması için Google ile oturum açma için App Check metriklerine bakabilirsiniz.
Uygulama Kontrolü'nü zorunlu kılma
App Check'in kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda App Check zorunluluğunu etkinleştirebilirsiniz.
Hata ayıklama ortamlarında App Check'i kullanma
Uygulamanızı Uygulama Kontrolü'ne kaydettikten sonra, uygulamanızı Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmayacağı bir ortamda (ör. geliştirme sırasında simülatörde veya sürekli entegrasyon (CI) ortamında) çalıştırmak istiyorsanız uygulamanızın App Attest yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama sürümünü oluşturabilirsiniz.
Hata ayıklama sağlayıcısıyla App Check'i kullanma başlıklı makaleyi inceleyin.