Apple platformlarında hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanma

Uygulamanızı App Check'e kaydettikten sonra uygulamanızı App Check'in normalde geçerli olarak sınıflandırmayacağı bir ortamda (ör. geliştirme sırasında bir simülatör veya cihaz) veya sürekli entegrasyon (CI) ortamında çalıştırmak istiyorsanız gerçek bir doğrulama sağlayıcısı yerine App Check hata ayıklama sağlayıcısını kullanan uygulamanızın hata ayıklama derlemesini oluşturabilirsiniz.

Geliştirme aşamasında hata ayıklama sağlayıcıyı kullanma

Uygulamanızı etkileşimli olarak çalıştırırken hata ayıklama sağlayıcısını kullanmak için (örneğin, geliştirme sırasında) aşağıdakileri yapın:

  1. Hata ayıklama derlemenizde, herhangi bir Firebase arka uç hizmetini kullanmadan önce App Check hata ayıklama sağlayıcısını fabrika ayarlarına ayarlayın:

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Xcode projenizde (v11.0 veya daha yeni bir sürüm) hata ayıklama günlüğünü etkinleştirin:

    1. Ürünü açın > Şema > Şemayı düzenleyin.
    2. Sol menüden Çalıştır'ı, ardından Parametreler sekmesini seçin.
    3. Başlatma sırasında iletilen bağımsız değişkenler bölümüne -FIRDebugEnabled ekleyin.
  3. Uygulamayı başlatın. SDK şunu yapmaya çalıştığında günlüğe yerel bir hata ayıklama jetonu kaydedilir: arka uca istek gönderin. Örneğin:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. App Check bölümünde Firebase konsolunun, uygulamanızın menüsünden Hata ayıklama jetonlarını yönet'i seçin taşma menüsü. Ardından, önceki adımda kaydettiğiniz hata ayıklama jetonunu kaydedin.

    Hata Ayıklama Jetonlarını Yönet menü öğesinin ekran görüntüsü

Jetonu kaydettikten sonra Firebase arka uç hizmetleri jetonu geçerli olarak kabul eder.

Bu jeton, geçerli bir cihaz olmadan Firebase kaynaklarınıza erişime izin verdiğinden, jetonu gizli tutmanız çok önemlidir. Jetonu herkese açık bir depoya göndermeyin. Kayıtlı bir jetonun güvenliği ihlal edilirse Firebase konsolunda hemen iptal edin.

Hata ayıklama sağlayıcıyı CI ortamında kullanma

Hata ayıklama sağlayıcıyı sürekli entegrasyon (CI) ortamında kullanmak için aşağıdakileri yapın:

  1. Firebase konsolunun App Check bölümünde, uygulamanızın taşma menüsünden Hata ayıklama jetonlarını yönet'i seçin. Ardından yeni bir hata ayıklama jetonu oluşturun. Sonraki adımda jetona ihtiyacınız olacak.

    Çünkü bu jeton, Firebase kaynaklarınıza olması çok önemlidir. Bu nedenle, cihazı gizli tutmalısınız. Hiçbir zaman kayıtlı bir jetonun güvenliği ihlal edilirse bu kodu iptal edebilir Firebase konsolunda hemen görebilirsiniz.

    Hata Ayıklama Jetonlarını Yönet menü öğesinin ekran görüntüsü

  2. Yeni oluşturduğunuz hata ayıklama jetonunu CI sisteminizin güvenli anahtar deposuna ekleyin (ör. GitHub Actions'ın şifrelenmiş gizli bilgileri veya Travis CI'nın şifrelenmiş değişkenleri).

  3. Gerekirse hata ayıklama jetonunuzu kullanılabilir hale getirmek için CI sisteminizi yapılandırın arasında bir ortam değişkeni olarak gösterilir. Değişkeni APP_CHECK_DEBUG_TOKEN_FROM_CI gibi bir adla adlandırın.

  4. Xcode'da, test şemanıza FIRAAppCheckDebugToken adlı ve değeri $(APP_CHECK_DEBUG_TOKEN) gibi bir şey olan bir ortam değişkeni ekleyin.

  5. CI test komut dosyanızı, hata ayıklama jetonunu ortam olarak geçirecek şekilde yapılandırma değişkenine eklenmelidir. Örneğin:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Hata ayıklama derlemenizdeki Firebase arka uç hizmetlerini kullanmadan önce App Check hata ayıklama sağlayıcı fabrikasını oluşturup ayarlayın:

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

Uygulamanız CI ortamında çalıştığında Firebase arka uç hizmetleri şunları kabul eder: gönderdiği jetonun geçerli olarak kabul edilmesini sağlar.