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

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

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

Uygulamanızı bir öykünücüde 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. Modül (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle ), Uygulama Kontrolü için bağımlılığı ekleyin Android kitaplığı. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
    
        // Add the dependencies for the App Check libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug")
    implementation("com.google.firebase:firebase-appcheck-ktx")
    }

    Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

    (Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin

    Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.

    dependencies {
        // Add the dependencies for the App Check libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug:17.0.1")
    implementation("com.google.firebase:firebase-appcheck-ktx:17.0.1")
    }

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
    
        // Add the dependencies for the App Check libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug")
    }
    

    Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

    (Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin

    Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.

    dependencies {
        // Add the dependencies for the App Check libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-appcheck-debug:17.0.1")
    }
    

  2. Hata ayıklama yapınızda, Uygulama Denetimini hata ayıklama sağlayıcı fabrikasını kullanacak şekilde yapılandırın:

    Kotlin+KTX

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  3. Uygulamayı başlatın ve bir Firebase arka uç hizmetine çağrı 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çtığınız hata ayıklama jetonunu kaydedin.

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

Belirteci kaydettikten sonra, Firebase arka uç hizmetleri bunu geçerli olarak kabul edecektir.

Bu belirteç, Firebase kaynaklarınıza geçerli bir cihaz olmadan erişim sağladığından, onu gizli tutmanız çok önemlidir. Halka açık bir depoya teslim etmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse, onu Firebase konsolunda hemen iptal edin.

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

Bir 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. Jetona bir sonraki adımda ihtiyacınız olacak.

    Bu belirteç, Firebase kaynaklarınıza geçerli bir cihaz olmadan erişim sağladığından, onu gizli tutmanız çok önemlidir. Halka açık bir depoya teslim etmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse, onu Firebase konsolunda hemen iptal edin.

    Hata Ayıklama Belirteçlerini 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ş sırları veya Travis CI'nin şifrelenmiş değişkenleri ).

  3. Gerekirse, CI sisteminizi, hata ayıklama belirtecinizin CI ortamında bir ortam değişkeni olarak kullanılabilir olmasını sağlayacak şekilde yapılandırın. Değişkeni APP_CHECK_DEBUG_TOKEN_FROM_CI gibi adlandırın.

  4. Modül (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle ), Uygulama Kontrolü için bağımlılığı ekleyin Android kitaplığı. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
    
        // Add the dependency for the App Check library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing")
    }
    

    Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

    (Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin

    Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.

    dependencies {
        // Add the dependency for the App Check library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1")
    }
    

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
    
        // Add the dependency for the App Check library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing")
    }
    

    Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

    (Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin

    Firebase BoM'yi kullanmamayı seçerseniz, her bir Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı kesinlikle öneririz.

    dependencies {
        // Add the dependency for the App Check library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1")
    }
    

  5. CI yapı değişkeninizin yapılandırmasına aşağıdakileri ekleyin:

    testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] =
        System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
    
  6. Test sınıflarınızda, Uygulama Kontrolü belirteci gerektiren herhangi bir kodu sarmak için DebugAppCheckTestHelper kullanın:

    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.
            }
        }
    }
    

    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.
                    });
        }
    }
    

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