از App Check با ارائه دهنده اشکال زدایی در پلتفرم های اپل استفاده کنید

اگر پس از ثبت برنامه خود برای App Check ، می‌خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقه‌بندی نمی‌کند، مانند یک شبیه‌ساز یا دستگاه در حین توسعه، یا از یک محیط یکپارچه‌سازی مداوم (CI)، می‌توانید یک نسخه اشکال‌زدایی از برنامه خود ایجاد کنید که از ارائه‌دهنده اشکال‌زدایی App Check به جای یک ارائه‌دهنده گواهی واقعی استفاده می‌کند.

استفاده از ارائه‌دهنده اشکال‌زدایی در توسعه

برای استفاده از ارائه‌دهنده‌ی اشکال‌زدایی هنگام اجرای تعاملی برنامه (مثلاً در طول توسعه)، موارد زیر را انجام دهید:

  1. در نسخه اشکال‌زدایی خود، قبل از استفاده از هرگونه سرویس backend فایربیس، کارخانه ارائه دهنده اشکال‌زدایی App Check ایجاد و تنظیم کنید:

    سویفت

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    هدف-سی

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. فعال کردن ثبت گزارش اشکال‌زدایی در پروژه Xcode (نسخه ۱۱.۰ یا جدیدتر):

    1. محصول > طرح > ویرایش طرح را باز کنید.
    2. از منوی سمت چپ، گزینه Run را انتخاب کنید، سپس به تب Arguments بروید.
    3. در بخش آرگومان‌های ارسالی در هنگام راه‌اندازی ، -FIRDebugEnabled اضافه کنید.
  3. برنامه را اجرا کنید. وقتی SDK سعی می‌کند درخواستی به backend ارسال کند، یک توکن اشکال‌زدایی محلی ثبت می‌شود. برای مثال:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. در بخش App Check در کنسول Firebase ، از منوی سرریز برنامه خود، گزینه مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens) را انتخاب کنید. سپس، توکن اشکال‌زدایی (debug token) که در مرحله قبل وارد کرده‌اید را ثبت کنید.

    تصویر از آیتم منوی مدیریت توکن‌های اشکال‌زدایی

پس از ثبت توکن، سرویس‌های بک‌اند فایربیس آن را به عنوان توکن معتبر می‌پذیرند.

از آنجا که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم می‌کند، بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی ثبت نکنید و اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را در کنسول Firebase لغو کنید.

استفاده از ارائه دهنده اشکال زدایی در محیط CI

برای استفاده از ارائه‌دهنده اشکال‌زدایی در یک محیط یکپارچه‌سازی مداوم (CI)، موارد زیر را انجام دهید:

  1. در بخش App Check در کنسول Firebase ، از منوی بالای برنامه، گزینه مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens) را انتخاب کنید. سپس، یک توکن اشکال‌زدایی جدید ایجاد کنید. در مرحله بعدی به این توکن نیاز خواهید داشت.

    از آنجا که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم می‌کند، بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی ثبت نکنید و اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را در کنسول Firebase لغو کنید.

    تصویر از آیتم منوی مدیریت توکن‌های اشکال‌زدایی

  2. توکن اشکال‌زدایی که ایجاد کرده‌اید را به مخزن کلید امن سیستم CI خود اضافه کنید (برای مثال، اسرار رمزگذاری‌شده‌ی GitHub Actions یا متغیرهای رمزگذاری‌شده‌ی Travis CI).

  3. در صورت لزوم، سیستم CI خود را پیکربندی کنید تا توکن اشکال‌زدایی شما به عنوان یک متغیر محیطی در محیط CI در دسترس باشد. نام متغیر را چیزی مانند APP_CHECK_DEBUG_TOKEN_FROM_CI بگذارید.

  4. در Xcode، یک متغیر محیطی به طرح آزمایش خود با نام FIRAAppCheckDebugToken و مقداری مانند $(APP_CHECK_DEBUG_TOKEN) اضافه کنید.

  5. اسکریپت تست CI خود را طوری پیکربندی کنید که توکن اشکال‌زدایی را به عنوان یک متغیر محیطی ارسال کند. برای مثال:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. در نسخه اشکال‌زدایی خود، قبل از استفاده از هرگونه سرویس backend فایربیس، کارخانه ارائه دهنده اشکال‌زدایی App Check ایجاد و تنظیم کنید:

    سویفت

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    هدف-سی

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

وقتی برنامه شما در یک محیط CI اجرا می‌شود، سرویس‌های Backend فایربیس توکنی را که ارسال می‌کند به عنوان توکن معتبر می‌پذیرند.