اگر بعد از اینکه برنامه خود را برای App Check ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه بندی نمی کند، مانند شبیه ساز در حین توسعه، یا از یک محیط یکپارچه سازی مداوم (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:33.6.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 استفاده میکند.
به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ از اکتبر 2023 ( Firebase BoM 32.5.0) ، توسعه دهندگان Kotlin و Java می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).(جایگزین) وابستگی های کتابخانه 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:18.0.0") }
در ساخت اشکالزدایی، App Check را برای استفاده از کارخانه ارائهدهنده اشکالزدایی پیکربندی کنید:
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
برنامه را راه اندازی کنید و یک تماس با یک سرویس پشتیبان Firebase را راه اندازی کنید. هنگامی که SDK سعی می کند درخواستی را به باطن ارسال کند، یک نشانه اشکال زدایی محلی ثبت می شود. به عنوان مثال:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
در بخش App Check کنسول Firebase ، مدیریت نشانههای اشکال زدایی را از منوی سرریز برنامه خود انتخاب کنید. سپس، رمز اشکال زدایی را که در مرحله قبل وارد کرده اید، ثبت کنید.
پس از ثبت توکن، خدمات پشتیبان Firebase آن را معتبر میپذیرند.
از آنجایی که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم می کند، مهم است که آن را خصوصی نگه دارید. آن را به یک مخزن عمومی متعهد نکنید و اگر یک توکن ثبت شده در معرض خطر قرار گرفت، بلافاصله آن را در کنسول Firebase لغو کنید.
از ارائه دهنده اشکال زدایی برای تست واحد در محیط CI استفاده کنید
برای استفاده از ارائه دهنده اشکال زدایی برای آزمایش واحد در محیط یکپارچه سازی پیوسته (CI)، موارد زیر را انجام دهید:
در بخش App Check کنسول 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 اضافه کنید کتابخانه برای اندروید توصیه میکنیم از Firebase Android BoM برای کنترل نسخهسازی کتابخانه استفاده کنید.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.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 استفاده میکند.
به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ از اکتبر 2023 ( Firebase BoM 32.5.0) ، توسعه دهندگان Kotlin و Java می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).(جایگزین) وابستگی های کتابخانه 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:18.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.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 استفاده میکند.
به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ از اکتبر 2023 ( Firebase BoM 32.5.0) ، توسعه دهندگان Kotlin و Java می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).(جایگزین) وابستگی های کتابخانه 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:18.0.0") }
موارد زیر را به پیکربندی نوع ساخت CI خود اضافه کنید:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
در کلاسهای آزمایشی خود، از
DebugAppCheckTestHelper
برای بستهبندی هر کدی که به کد App Check نیاز دارد استفاده کنید: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 رمز ارسالی را معتبر میپذیرند.