استخدم التحقق من التطبيق مع موفر تصحيح الأخطاء على Android

إذا كنت تريد، بعد تسجيل تطبيقك للتحقق من التطبيق، تشغيل تطبيقك في بيئة لا يصنفها فحص التطبيق عادةً على أنها صالحة، مثل المحاكي أثناء التطوير، أو من بيئة التكامل المستمر (CI)، فيمكنك إنشاء نسخة تصحيح أخطاء لتطبيقك تستخدم موفر تصحيح أخطاء التحقق من التطبيق بدلاً من موفر التصديق الحقيقي.

استخدم موفر التصحيح في المحاكي

لاستخدام موفر تصحيح الأخطاء أثناء تشغيل تطبيقك في أحد المحاكي بشكل تفاعلي (أثناء التطوير، على سبيل المثال)، قم بما يلي:

  1. في ملف Gradle الخاص بوحدتك (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle )، أضف التبعية لفحص التطبيق مكتبة لالروبوت. نوصي باستخدام Firebase Android BoM للتحكم في إصدار المكتبة.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:17.1.2")
    }
    
    هل تبحث عن وحدة مكتبة خاصة بـ Kotlin؟ بدءًا من أكتوبر 2023 (Firebase BoM 32.5.0) ، يمكن لمطوري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمزيد من التفاصيل، راجع الأسئلة الشائعة حول هذه المبادرة ).

  2. في بناء تصحيح الأخطاء الخاص بك، قم بتكوين التحقق من التطبيق لاستخدام مصنع موفر تصحيح الأخطاء:

    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. قم بتشغيل التطبيق وقم بإجراء مكالمة إلى خدمة Firebase الخلفية. سيتم تسجيل رمز التصحيح المحلي عندما يحاول SDK إرسال طلب إلى الواجهة الخلفية. على سبيل المثال:

    D DebugAppCheckProvider: Enter this debug secret into the allow list in
    the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  4. في قسم التحقق من التطبيق بوحدة تحكم Firebase، اختر إدارة الرموز المميزة لتصحيح الأخطاء من القائمة الكاملة لتطبيقك. ثم قم بتسجيل رمز التصحيح الذي قمت بتسجيله في الخطوة السابقة.

    لقطة شاشة لعنصر القائمة "إدارة رموز التصحيح".

بعد تسجيل الرمز المميز، ستقبله خدمات Firebase الخلفية على أنه صالح.

نظرًا لأن هذا الرمز المميز يسمح بالوصول إلى موارد Firebase الخاصة بك دون جهاز صالح، فمن الضروري أن تحافظ على خصوصيته. لا تضعه في مستودع عام، وإذا تعرض رمز مميز مسجل للاختراق، فقم بإلغائه على الفور في وحدة تحكم Firebase.

استخدم موفر تصحيح الأخطاء لاختبار الوحدة في بيئة CI

لاستخدام موفر التصحيح لاختبار الوحدة في بيئة التكامل المستمر (CI)، قم بما يلي:

  1. في قسم التحقق من التطبيق بوحدة تحكم Firebase، اختر إدارة الرموز المميزة لتصحيح الأخطاء من القائمة الكاملة لتطبيقك. ثم قم بإنشاء رمز تصحيح جديد. ستحتاج إلى الرمز المميز في الخطوة التالية.

    نظرًا لأن هذا الرمز المميز يسمح بالوصول إلى موارد Firebase الخاصة بك دون جهاز صالح، فمن الضروري أن تحافظ على خصوصيته. لا تضعه في مستودع عام، وإذا تعرض رمز مميز مسجل للاختراق، فقم بإلغائه على الفور في وحدة تحكم Firebase.

    لقطة شاشة لعنصر القائمة "إدارة رموز التصحيح".

  2. أضف رمز التصحيح الذي أنشأته للتو إلى مخزن المفاتيح الآمن لنظام CI (على سبيل المثال، الأسرار المشفرة لـ GitHub Actions أو المتغيرات المشفرة لـ Travis CI).

  3. إذا لزم الأمر، قم بتكوين نظام CI الخاص بك لجعل رمز التصحيح الخاص بك متاحًا داخل بيئة CI كمتغير بيئة. قم بتسمية المتغير بشيء مثل APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. في ملف Gradle الخاص بوحدتك (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle )، أضف التبعية لفحص التطبيق مكتبة لالروبوت. نوصي باستخدام Firebase Android BoM للتحكم في إصدار المكتبة.

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:17.1.2")
    }
    
    هل تبحث عن وحدة مكتبة خاصة بـ Kotlin؟ بدءًا من أكتوبر 2023 (Firebase BoM 32.5.0) ، يمكن لمطوري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمزيد من التفاصيل، راجع الأسئلة الشائعة حول هذه المبادرة ).

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:17.1.2")
    }
    
    هل تبحث عن وحدة مكتبة خاصة بـ Kotlin؟ بدءًا من أكتوبر 2023 (Firebase BoM 32.5.0) ، يمكن لمطوري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمزيد من التفاصيل، راجع الأسئلة الشائعة حول هذه المبادرة ).

  5. أضف ما يلي إلى تكوين متغير بناء CI الخاص بك:

    testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] =
        System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
    
  6. في فئات الاختبار الخاصة بك، استخدم DebugAppCheckTestHelper لتغليف أي تعليمات برمجية تحتاج إلى رمز التحقق من التطبيق:

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

عندما يتم تشغيل تطبيقك في بيئة CI، ستقبل خدمات Firebase الخلفية الرمز المميز الذي يرسله باعتباره صالحًا.