پس از اینکه App Check برای یک سرویس backend اجرا شد، ویژگیهای برنامه شما که به آن سرویس backend وابسته هستند، در یک شبیهساز یا از یک محیط یکپارچهسازی مداوم (CI) اجرا نمیشوند، زیرا این محیطها به عنوان دستگاههای معتبر واجد شرایط نیستند. برای اجرای برنامه خود در این محیطها در طول توسعه و آزمایش، باید یک نسخه اشکالزدایی از برنامه خود ایجاد کنید که از ارائهدهنده اشکالزدایی App Check به جای ارائهدهنده گواهی تولید استفاده میکند.
از ارائه دهنده اشکال زدایی در یک شبیه ساز استفاده کنید
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (به عنوان مثال، در طول توسعه محلی) آورده شده است:
در فایل Gradle ماژول (سطح برنامه) خود (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی مربوط به کتابخانه App Check برای اندروید را اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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.3.0") }
در نسخه اشکالزدایی (debug build)، App Check طوری پیکربندی کنید که از debug provider factory استفاده کند:
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 ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سهنقطهای ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ثبت توکن اشکالزدایی خود، دستورالعملهای روی صفحه را دنبال کنید.

پس از ثبت توکن در App Check ، سرویسهای بکاند شما آن را به عنوان معتبر میپذیرند.
این توکن امکان دسترسی به سرویسهای backend شما را بدون نیاز به دستگاه معتبر فراهم میکند، بنابراین بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی قرار ندهید یا در نسخههای تولیدی برنامه خود ارسال نکنید. اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را با استفاده از Manage debug tokens در کنسول Firebase حذف کنید.
استفاده از ارائهدهندهی اشکالزدایی برای تست واحد در محیط CI
در اینجا نحوه استفاده از ارائه دهنده اشکال زدایی برای تست واحد در یک محیط ادغام مداوم (CI) آورده شده است:
در کنسول Firebase ، یک توکن اشکالزدایی ایجاد کنید:
در کنسول Firebase ، به تب Security > App Check > Apps بروید.
برنامهی خود را پیدا کنید، روی منوی سهنقطهای ( ) کلیک کنید و سپس مدیریت توکنهای اشکالزدایی (Manage debug tokens ) را انتخاب کنید.
برای ایجاد یک نشانه اشکالزدایی جدید، دستورالعملهای روی صفحه را دنبال کنید.
این توکن امکان دسترسی به سرویسهای backend شما را بدون نیاز به دستگاه معتبر فراهم میکند، بنابراین بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی قرار ندهید یا در نسخههای تولیدی برنامه خود ارسال نکنید. اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را با استفاده از Manage debug tokens در کنسول Firebase حذف کنید.

توکن اشکالزدایی که ایجاد کردهاید را به مخزن کلید امن سیستم CI خود اضافه کنید (برای مثال، اسرار رمزگذاریشدهی GitHub Actions یا متغیرهای رمزگذاریشدهی Travis CI).
در صورت لزوم، سیستم CI خود را پیکربندی کنید تا توکن اشکالزدایی شما به عنوان یک متغیر محیطی در محیط CI در دسترس باشد. نام متغیر را چیزی مانند
APP_CHECK_DEBUG_TOKEN_FROM_CIبگذارید.در فایل Gradle ماژول (سطح برنامه) خود (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی مربوط به کتابخانه App Check برای اندروید را اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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.3.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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.3.0") }
موارد زیر را به پیکربندی نسخه ساخت CI خود اضافه کنید:
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. }); } }
وقتی برنامه شما در محیط CI اجرا میشود، سرویسهای backend شما توکنی را که ارسال میکند به عنوان توکن معتبر میپذیرند.