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

پس از اینکه App Check برای یک سرویس backend اجرا شد، ویژگی‌های برنامه شما که به آن سرویس backend وابسته هستند، در یک شبیه‌ساز یا از یک محیط یکپارچه‌سازی مداوم (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. توکن اشکال‌زدایی خود را دریافت کنید:

    1. برنامه خود را در شبیه‌ساز یا روی دستگاه آزمایشی خود اجرا کنید.

    2. کنسول Xcode را باز کنید و به دنبال توکن اشکال‌زدایی App Check بگردید. برای مثال:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. توکن را کپی کنید (برای مثال، 123a4567-b89c-12d3-e456-789012345678 ).

  3. توکن اشکال‌زدایی خود را با App Check ثبت کنید:

    1. در کنسول Firebase ، به تب Security > App Check > Apps بروید.

    2. برنامه‌ی خود را پیدا کنید، روی منوی سه‌نقطه‌ای ( ) کلیک کنید و سپس مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens ) را انتخاب کنید.

    3. برای ثبت توکن اشکال‌زدایی خود، دستورالعمل‌های روی صفحه را دنبال کنید.

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

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

این توکن امکان دسترسی به سرویس‌های backend شما را بدون نیاز به دستگاه معتبر فراهم می‌کند، بنابراین بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی قرار ندهید یا در نسخه‌های تولیدی برنامه خود ارسال نکنید. اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را با استفاده از Manage debug tokens در کنسول Firebase حذف کنید.

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

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

  1. در کنسول Firebase ، یک توکن اشکال‌زدایی ایجاد کنید:

    1. در کنسول Firebase ، به تب Security > App Check > Apps بروید.

    2. برنامه‌ی خود را پیدا کنید، روی منوی سه‌نقطه‌ای ( ) کلیک کنید و سپس مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens ) را انتخاب کنید.

    3. برای ایجاد یک نشانه اشکال‌زدایی جدید، دستورالعمل‌های روی صفحه را دنبال کنید.

    این توکن امکان دسترسی به سرویس‌های backend شما را بدون نیاز به دستگاه معتبر فراهم می‌کند، بنابراین بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی قرار ندهید یا در نسخه‌های تولیدی برنامه خود ارسال نکنید. اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را با استفاده از Manage debug tokens در کنسول Firebase حذف کنید.

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

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

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

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

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

    xcodebuild test -scheme YOUR_TEST_SCHEME -workspace YOUR_PROJECT.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 شما توکنی را که ارسال می‌کند به عنوان توکن معتبر می‌پذیرند.