Hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanma

Uygulamanızı Uygulama Kontrolü'ne kaydettikten sonra, uygulamanızı normalde geçerli olarak sınıflandırılmayan bir ortamda (örneğin, geliştirme sırasında simülatör veya sürekli entegrasyon (CI) ortamından) çalıştırmak isterseniz uygulamanızda App Attest yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama derlemesi oluşturabilirsiniz.

Hata ayıklama sağlayıcısını simülatörde kullanma

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

  1. Google Cloud Console'un API'ler ve Hizmetler bölümünün Kimlik Bilgileri sayfasında projenizin iOS API anahtarını bulun.

  2. Hata ayıklama derlemenizde Uygulama Kontrolü'nü hata ayıklama sağlayıcısını kullanacak şekilde yapılandırın. Önceki adımda aldığınız API anahtarını belirtmeniz gerekir.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    
  3. Uygulamayı başlatın. SDK, arka uca istek göndermeye çalıştığında Xcode konsoluna yerel bir hata ayıklama jetonu kaydedilir. Örneğin:

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. Firebase konsolunun Uygulama Kontrolü bölümünde, uygulamanızın taşma menüsünden Hata ayıklama jetonlarını yönetin'i seçin. 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 kaydetmenizin ardından, Google'ın OAuth 2.0 uç noktaları bu jetonu projeniz için geçerli olarak kabul eder.

Bu jeton, geçerli bir cihaz olmadan kimlik doğrulama uç noktalarınıza erişim sağladığından jetonu gizli tutmanız çok önemlidir. Jetonu herkese açık bir depoya kaydetmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse bu jetonu Firebase konsolunda hemen iptal edin.

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

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

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

    Bu jeton geçerli bir cihaz olmadan kimlik doğrulama uç noktalarınıza erişim sağladığından jetonu gizli tutmanız çok önemlidir. Jetonu herkese açık bir depoya kaydetmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse bu jetonu Firebase konsolunda hemen iptal edin.

    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 (örneğin, GitHub Actions'ın şifrelenmiş gizli anahtarları veya Travis CI'nın şifrelenmiş değişkenleri).

  3. Gerekirse CI sisteminizi, hata ayıklama jetonunuzu CI ortamında bir ortam değişkeni olarak kullanılabilir hale getirecek şekilde yapılandırın. Değişkene APP_CHECK_DEBUG_TOKEN_FROM_CI gibi bir ad verin.

  4. Xcode'da test şemanıza FIRAAppCheckDebugToken adını taşıyan ve değer olarak $(APP_CHECK_DEBUG_TOKEN) gibi bir ortam değişkeni ekleyin.

  5. CI test komut dosyanızı, hata ayıklama jetonunu ortam değişkeni olarak iletecek şekilde yapılandırın. Örneğin:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Google Cloud Console'un API'ler ve Hizmetler bölümünün Kimlik Bilgileri sayfasında projenizin iOS API anahtarını bulun.

  7. Hata ayıklama derlemenizde Uygulama Kontrolü'nü hata ayıklama sağlayıcısını kullanacak şekilde yapılandırın. Önceki adımda aldığınız API anahtarını belirtmeniz gerekir.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    

Uygulamanız bir CI ortamında çalıştığında, Google'ın OAuth 2.0 uç noktaları projeniz için geçerli olarak gönderdiği jetonu kabul eder.