بعد فرض App Check على خدمة الخلفية، لن تعمل ميزات تطبيقك التي تعتمد على خدمة الخلفية هذه في محاكي أو من بيئة تكامل مستمر (CI)، لأنّ هذه البيئات لا تُعد أجهزة صالحة. لتشغيل تطبيقك في هذه البيئات أثناء التطوير والاختبار، عليك إنشاء إصدار مخصص لتصحيح الأخطاء من تطبيقك يستخدم App Check مقدّم خدمة تصحيح الأخطاء بدلاً من مزوّد شهادات الإصدار العلني.
Firebaseاستخدام مقدّم خدمة تصحيح الأخطاء في محاكي
إليك كيفية استخدام مقدّم خدمة تصحيح الأخطاء أثناء تشغيل تطبيقك في محاكي بشكل تفاعلي (على سبيل المثال، أثناء التطوير المحلي):
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً ما يكون
<project>/<app-module>/build.gradle.ktsأو<project>/<app-module>/build.gradle)، أضِف التبعية لمكتبة App Check لنظام التشغيل Android. ننصحك باستخدام الـ Firebase Android BoM للتحكّم في تحديد إصدار المكتبة.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.18.0")) // 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، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM، عليك تحديد إصدار كل مكتبة من مكتبات Firebase في سطر التبعية الخاص بها.
يُرجى العِلم أنّه إذا كنت تستخدم مكتبات متعددة من Firebase في تطبيقك، ننصحك بشدة باستخدام BoM لإدارة إصدارات المكتبة، ما يضمن توافق جميع الإصدارات.
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:19.4.1") }
في إصدار مخصص لتصحيح الأخطاء، اضبط App Check لاستخدام مصنع مقدّم خدمة تصحيح الأخطاء:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
احصل على الرمز المميّز لإصلاح الأخطاء:
شغِّل تطبيقك في المحاكي أو على جهاز الاختبار.
ابحث عن الرمز المميّز لإصلاح الأخطاء App Check في سجلّاتك. على سبيل المثال:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678انسخ الرمز المميّز (على سبيل المثال،
123a4567-b89c-12d3-e456-789012345678).
سجِّل الرمز المميّز لإصلاح الأخطاء في App Check:
في Firebase Console، انتقِل إلى علامة التبويب الأمان > فحص التطبيقات > التطبيقات.
ابحث عن تطبيقك، وانقر على القائمة الكاملة ()، ثم على إدارة الرموز المميّزة لإصلاح الأخطاء.
اتّبِع التعليمات الظاهرة على الشاشة لتسجيل الرمز المميّز لإصلاح الأخطاء.

بعد تسجيل الرمز المميّز في App Check، ستقبله خدماتك في الخلفية كرمز مميّز صالح.
يسمح هذا الرمز المميّز بالوصول إلى خدماتك في الخلفية بدون جهاز صالح، لذا من الضروري الحفاظ على سريته. _**لا**_ تُحمِّله إلى مستودع علني أو تُضمِّنه في إصدارات الإنتاج من تطبيقك. إذا تم اختراق رمز مميّز مسجَّل، احذفه على الفور باستخدام **إدارة الرموز المميّزة لإصلاح الأخطاء** في Firebase Console.
استخدام مزوّد تصحيح الأخطاء للاختبار على مستوى الوحدة في بيئة تكامل مستمر
إليك كيفية استخدام مزوّد تصحيح الأخطاء للاختبار على مستوى الوحدة في بيئة تكامل مستمر (CI):
في Firebase Console، أنشئ رمزًا مميّزًا لإصلاح الأخطاء:
في Firebase Console، انتقِل إلى علامة التبويب الأمان > فحص التطبيقات > التطبيقات.
ابحث عن تطبيقك، وانقر على القائمة الكاملة ()، ثم على إدارة الرموز المميّزة لإصلاح الأخطاء.
اتّبِع التعليمات الظاهرة على الشاشة لإنشاء رمز مميّز جديد لإصلاح الأخطاء.
يسمح هذا الرمز المميّز بالوصول إلى خدماتك في الخلفية بدون جهاز صالح، لذا من الضروري الحفاظ على سريته. _**لا**_ تُحمِّله إلى مستودع علني أو تُضمِّنه في إصدارات الإنتاج من تطبيقك. إذا تم اختراق رمز مميّز مسجَّل، احذفه على الفور باستخدام **إدارة الرموز المميّزة لإصلاح الأخطاء** في Firebase Console.

أضِف الرمز المميّز لإصلاح الأخطاء الذي أنشأته للتو إلى مخزن المفاتيح الآمن لنظام التكامل المستمر (على سبيل المثال، الأسرار المشفّرة في GitHub Actions أو المتغيّرات المشفّرة في Travis CI).
إذا لزم الأمر، اضبط نظام التكامل المستمر لجعل الرمز المميّز لإصلاح الأخطاء متاحًا في بيئة التكامل المستمر كمتغيّر بيئة. امنح المتغيّر اسمًا مثل
APP_CHECK_DEBUG_TOKEN_FROM_CI.في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً ما يكون
<project>/<app-module>/build.gradle.ktsأو<project>/<app-module>/build.gradle)، أضِف التبعية لمكتبة App Check لنظام التشغيل Android. ننصحك باستخدام الـ Firebase Android BoM للتحكّم في تحديد إصدار المكتبة.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.18.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
باستخدام Firebase Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM، عليك تحديد إصدار كل مكتبة من مكتبات Firebase في سطر التبعية الخاص بها.
يُرجى العِلم أنّه إذا كنت تستخدم مكتبات متعددة من Firebase في تطبيقك، ننصحك بشدة باستخدام BoM لإدارة إصدارات المكتبة، ما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.4.1") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.18.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
باستخدام Firebase Android BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM، عليك تحديد إصدار كل مكتبة من مكتبات Firebase في سطر التبعية الخاص بها.
يُرجى العِلم أنّه إذا كنت تستخدم مكتبات متعددة من Firebase في تطبيقك، ننصحك بشدة باستخدام BoM لإدارة إصدارات المكتبة، ما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.4.1") }
أضِف ما يلي إلى إعدادات تنويعة التصميم في التكامل المستمر:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""في فئات الاختبار، استخدِم
DebugAppCheckTestHelperلتضمين أي رمز يحتاج إلى رمز مميّز App Check:Kotlin
@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. }); } }
عند تشغيل تطبيقك في بيئة تكامل مستمر، ستقبل خدماتك في الخلفية الرمز المميّز الذي ترسله كرمز مميّز صالح.