پساز اینکه App Check برای سرویس پسزمینهای اعمال شد، ویژگیهای برنامهتان که به آن سرویس پسزمینه وابسته است در شبیهساز یا از محیط ادغام پیوسته (CI) اجرا نخواهد شد زیرا این محیطها بهعنوان دستگاههای معتبر واجدشرایط نیستند. برای اجرای برنامهتان در این محیطها درطول توسعه و آزمایش، باید ساخت اشکالزدایی برای برنامهتان ایجاد کنید که بهجای ارائهدهنده گواهی تولید، از App Check ارائهدهنده اشکالزدایی استفاده کند.
استفاده کردن از ارائهکننده اشکالزدایی در شبیهساز
نحوه استفاده از ارائهکننده اشکالزدایی هنگام اجرای برنامه در شبیهساز بهصورت تعاملی (برای مثال، درطول توسعه محلی) در زیر آمده است:
در فایل 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:35.0.2")) // 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:20.0.0") }
در ساخت اشکالزدایی، 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، به برگه امنیت > بررسی برنامه > برنامهها بروید.
برنامهتان را پیدا کنید، روی منوِ سهنقطهای سرریز () کلیک کنید، و سپس مدیریت کردن کدهای اشکالزدایی را انتخاب کنید.
دستورالعملهای روی صفحه را برای ثبت کردن کد اشکالزدایی دنبال کنید.

پساز اینکه کد را با App Check ثبت کردید، سرویسهای پسین شما آن را بهعنوان کد معتبر میپذیرند.
این کد امکان دسترسی به سرویسهای پسین شما را بدون دستگاه معتبر فراهم میکند، بنابراین بسیار مهم است که آن را خصوصی نگه دارید. آن را به مخزن عمومی ارسال نکنید یا در نسخههای تولیدی برنامهتان قرار ندهید. اگر یک توکن ثبتشده به خطر افتاد، فوراً آن را بااستفاده از مدیریت توکنهای اشکالزدایی در کنسول Firebase حذف کنید.
استفاده از ارائهدهنده اشکالزدایی برای آزمایش واحد در محیط CI
نحوه استفاده از ارائهکننده اشکالزدایی برای آزمایش واحد در محیط ادغام مداوم (CI) در زیر آمده است:
در کنسول Firebase، یک کد اشکالزدایی ایجاد کنید:
در کنسول Firebase، به برگه امنیت > بررسی برنامه > برنامهها بروید.
برنامهتان را پیدا کنید، روی منوِ سهنقطهای سرریز () کلیک کنید، و سپس مدیریت کردن کدهای اشکالزدایی را انتخاب کنید.
دستورالعملهای روی صفحه را برای ایجاد کردن یک کد اشکالزدایی جدید دنبال کنید.
این کد امکان دسترسی به سرویسهای پسین شما را بدون دستگاه معتبر فراهم میکند، بنابراین بسیار مهم است که آن را خصوصی نگه دارید. آن را به مخزن عمومی ارسال نکنید یا در نسخههای تولیدی برنامهتان قرار ندهید. اگر یک توکن ثبتشده به خطر افتاد، فوراً آن را بااستفاده از مدیریت توکنهای اشکالزدایی در کنسول 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 را برای Android اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.2")) // 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:20.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.2")) // 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:20.0.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 اجرا میشود، سرویسهای پسای شما ژتونی را که ارسال میکند بهعنوان ژتون معتبر میپذیرد.