Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

App Check'i Apple platformlarında özel bir sağlayıcı ile kullanmaya başlayın,App Check'i Apple platformlarında özel bir sağlayıcı ile kullanmaya başlayın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Bu sayfa, özel Uygulama Kontrolü sağlayıcınızı kullanarak bir Apple uygulamasında Uygulama Kontrolünü nasıl etkinleştireceğinizi gösterir. Uygulama Kontrolü'nü etkinleştirdiğinizde, projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebilmesini sağlamaya yardımcı olursunuz.

Uygulama Kontrolü'nü yerleşik sağlayıcılarla kullanmak istiyorsanız, Uygulama Onaylı Uygulama Kontrolü ve DeviceCheck ile Uygulama Kontrolü belgelerine bakın.

Sen başlamadan önce

1. Uygulama Kontrolü kitaplığını uygulamanıza ekleyin

  1. Uygulama Kontrolü bağımlılığını projenizin Podfile :

    pod 'FirebaseAppCheck'

    Veya alternatif olarak bunun yerine Swift Paket Yöneticisini kullanabilirsiniz.

    Ayrıca, bağlı olduğunuz tüm Firebase hizmet istemci kitaplıklarının en son sürümünü kullandığınızdan emin olun.

  2. pod install çalıştırın ve oluşturulan .xcworkspace dosyasını açın.

2. Uygulama Kontrolü protokollerini uygulayın

İlk olarak, AppCheckProvider ve AppCheckProviderFactory protokollerini uygulayan sınıflar oluşturmanız gerekir.

AppCheckProvider sınıfınız, özel Uygulama Kontrolü sağlayıcınızın özgünlük kanıtı olarak ihtiyaç duyduğu her türlü bilgiyi toplayan ve bir Uygulama Kontrolü belirteci karşılığında belirteç edinme hizmetinize gönderen bir getToken getToken(completion:) yöntemine sahip olmalıdır. Uygulama Kontrolü SDK'sı belirteç önbelleğe almayı işler, bu nedenle getToken(completion:) uygulamanızda her zaman yeni bir belirteç edinin.

Süratli

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
    var app: FirebaseApp

    init(withFirebaseApp app: FirebaseApp) {
        self.app = app
        super.init()
    }

    func getToken(completion handler: @escaping (AppCheckToken?, Error?) -> Void) {
        DispatchQueue.main.async {
            // Logic to exchange proof of authenticity for an App Check token.
            // ...

            // Create AppCheckToken object.
            let exp = Date(timeIntervalSince1970: expirationFromServer)
            let token = AppCheckToken(
                token: tokenFromServer,
                expirationDate: exp
            )

            // Pass the token or error to the completion handler.
            handler(token, nil)
        }
    }
}

Amaç-C

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

Ayrıca, AppCheckProvider uygulamanızın örneklerini oluşturan bir AppCheckProviderFactory sınıfı uygulayın:

Süratli

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

Amaç-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
    return [[YourCustomAppCheckProvider alloc] initWithApp:app];
}

@end

3. Uygulama Kontrolünü Başlatın

Uygulama temsilcinize veya uygulama başlatıcınıza aşağıdaki başlatma kodunu ekleyin:

Süratli

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Amaç-C

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

Sonraki adımlar

Uygulama Kontrolü kitaplığı uygulamanıza yüklendikten sonra, güncellenen uygulamayı kullanıcılarınıza dağıtmaya başlayın.

Güncellenen istemci uygulaması, Firebase'e yaptığı her istekle birlikte Uygulama Kontrolü belirteçlerini göndermeye başlayacak, ancak Firebase ürünleri, Firebase konsolunun Uygulama Kontrolü bölümünde zorlamayı etkinleştirene kadar belirteçlerin geçerli olmasını gerektirmeyecek.

Metrikleri izleyin ve yaptırımı etkinleştirin

Ancak, yaptırımı etkinleştirmeden önce, bunu yapmanın mevcut meşru kullanıcılarınızı kesintiye uğratmayacağından emin olmalısınız. Öte 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 kullandığınız hizmetlere ilişkin Uygulama Kontrolü metriklerine bakabilirsiniz:

Uygulama Kontrolü yaptırımını etkinleştir

Uygulama Kontrolü'nün kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda, Uygulama Kontrolü yaptırımını etkinleştirebilirsiniz:

Hata ayıklama ortamlarında Uygulama Kontrolü'nü kullanın

Uygulamanızı Uygulama Kontrolü için kaydettirdikten sonra, uygulamanızı, geliştirme sırasındaki bir simülatör gibi Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmadığı bir ortamda veya bir sürekli entegrasyon (CI) ortamında çalıştırmak istiyorsanız, şunları yapabilirsiniz: gerçek bir doğrulama sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan uygulamanızın hata ayıklama yapısını oluşturun.

Apple platformlarında hata ayıklama sağlayıcısıyla Uygulama Denetimini kullanma konusuna bakın.