Uygulamanızı Uygulama Kontrolü için kaydettirdikten sonra, uygulamanızı, geliştirme sırasındaki bir öykünücü gibi veya bir sürekli entegrasyon (CI) ortamından, Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmadığı bir ortamda ç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 bir hata ayıklama derlemesini 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:
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.0' }
Kotlin+KTX
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0' }
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() )
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
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.
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:
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.
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 ).
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.Modülünüzde (uygulama düzeyinde) Gradle dosyanızda (genellikle
app/build.gradle
):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.0' }
Kotlin+KTX
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0' }
CI derleme varyantınızın yapılandırmasına aşağıdakileri ekleyin:
testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
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.