Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Android'de hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanın

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

Uygulamanızı Uygulama Kontrolü'ne kaydettirdikten sonra, uygulamanızı, geliştirme sırasındaki bir öykünücü 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.

Bir öykünücüde hata ayıklama sağlayıcısını kullanın

Uygulamanızı bir öykünücüde 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. Modülünüzde (app-level) Gradle dosyanızda (genellikle app/build.gradle ), App Check Android kitaplığının bağımlılığını bildirin:

    Java

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.2'
    }
    

    Kotlin+KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.2'
    }
    
  2. Hata ayıklama derlemenizde, hata ayıklama sağlayıcı fabrikasını kullanmak için Uygulama Denetimini yapılandırın:

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());

    Kotlin+KTX

    FirebaseApp.initializeApp(/*context=*/this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance()
    )
  3. Uygulamayı başlatın ve bir Firebase arka uç hizmetine bir çağrıyı tetikleyin. SDK arka uca bir istek göndermeye çalıştığında yerel bir hata ayıklama belirteci günlüğe kaydedilir. Örneğin:

    D DebugAppCheckProvider: Enter this debug secret into the allow list in
    the Firebase Console for your project: 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 belirteçlerini yönet'i seçin. Ardından, önceki adımda oturum açmış olduğunuz hata ayıklama belirtecini kaydedin.

    Hata Ayıklama Belirteçlerini Yönet menü öğesinin ekran görüntüsü

Belirteci kaydettikten sonra, Firebase arka uç hizmetleri onu geçerli olarak kabul eder.

Bu belirteç, geçerli bir cihaz olmadan Firebase kaynaklarınıza erişime izin verdiğinden, onu gizli tutmanız çok önemlidir. Herkese açık bir havuza taahhüt etmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse, derhal Firebase konsolunda iptal edin.

Bir CI ortamında birim testi için hata ayıklama sağlayıcısını kullanın

Sürekli tümleştirme (CI) ortamında birim testi için hata ayıklama sağlayıcısını 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 belirteçlerini yönet'i seçin. Ardından, yeni bir hata ayıklama belirteci oluşturun. Bir sonraki adımda jetona ihtiyacınız olacak.

    Bu belirteç, geçerli bir cihaz olmadan Firebase kaynaklarınıza erişime izin verdiğinden, onu gizli tutmanız çok önemlidir. Herkese açık bir havuza taahhüt etmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse, derhal Firebase konsolunda iptal edin.

    Hata Ayıklama Belirteçlerini Yönet menü öğesinin ekran görüntüsü

  2. Az önce oluşturduğunuz hata ayıklama belirtecini CI sisteminizin güvenli anahtar deposuna ekleyin (örneğin, GitHub Actions'ın şifreli sırları veya Travis CI'nin şifreli değişkenleri ).

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

  4. Modülünüzde (uygulama düzeyinde) Gradle dosyanızda (genellikle app/build.gradle ):

    1. App Check Android hata ayıklama kitaplığı için test bağımlılığını bildirin:

      Java

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.2'
      }
      

      Kotlin+KTX

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.2'
      }
      
    2. CI derleme varyantınızın yapılandırmasına aşağıdakileri ekleyin:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. Test sınıflarınızda, Uygulama Kontrolü belirtecine ihtiyaç duyan herhangi bir kodu sarmak için DebugAppCheckTestHelper kullanın:

    Java

    @RunWith(AndroidJunit4.class)
    public class YourTests {
        private final DebugAppCheckTestHelper debugAppCheckTestHelper =
                DebugAppCheckTestHelper.fromInstrumentationArgs();
    
        @Test
        public void testWithDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(() -> {
                // Test code that requires a debug AppCheckToken.
            });
        }
    
        @Test
        public void testWithNonDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(
                    FirebaseApp.getInstance("nonDefaultApp"),
                    () -> {
                        // Test code that requires a debug AppCheckToken.
                    });
        }
    }
    

    Kotlin+KTX

    @RunWith(AndroidJunit4::class)
    class MyTests {
        private val debugAppCheckTestHelper =
            DebugAppCheckTestHelper.fromInstrumentationArgs()
    
        @Test
        fun testWithDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider {
                // Test code that requires a debug AppCheckToken.
            }
        }
    
        @Test
        fun testWithNonDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(
                FirebaseApp.getInstance("nonDefaultApp")
            ) {
                // Test code that requires a debug AppCheckToken.
            }
        }
    }
    

Uygulamanız bir CI ortamında çalıştığında, Firebase arka uç hizmetleri, gönderdiği belirteci geçerli olarak kabul eder.