שימוש ב-App Check עם ספק ניפוי הבאגים בפלטפורמות של Apple

אחרי שמפעילים את App Check בשירות לקצה העורפי, התכונות של האפליקציה שתלויות בשירות לקצה העורפי הזה לא יפעלו בסימולטור או בסביבת אינטגרציה רציפה (CI), כי הסביבות האלה לא עומדות בדרישות של מכשירים תקינים. כדי להריץ את האפליקציה בסביבות האלה במהלך הפיתוח והבדיקה, צריך ליצור גרסת debug של האפליקציה שמשתמשת בApp Check ספק debug במקום בספק אימות לייצור.

שימוש בספק אימות לצורכי ניפוי באגים בסימולטור

כך משתמשים בספק ניפוי הבאגים בזמן הרצת האפליקציה בסימולטור באופן אינטראקטיבי (למשל, במהלך פיתוח מקומי):

  1. בגרסת build לניפוי באגים, לפני שמשתמשים בשירותי קצה עורפי של Firebase, צריך ליצור ולהגדיר את App Check ספק אימות לצורכי ניפוי באגים factory:

    Swift

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

    Objective-C

    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. מוצאים את האפליקציה, לוחצים על סמל האפשרויות הנוספות (3 נקודות) ובוחרים באפשרות ניהול של טוקנים לניפוי באגים.

    3. פועלים לפי ההוראות במסך כדי לרשום את אסימון הניפוי באגים.

    צילום מסך של הפריט Manage Debug Tokens (ניהול טוקנים לניפוי באגים) בתפריט במסוף Firebase

אחרי שרושמים את הטוקן ב-App Check, שירותי ה-Backend יקבלו אותו כטוקן תקין.

האסימון הזה מאפשר גישה לשירותי ה-Backend שלכם ללא מכשיר תקין, ולכן חשוב לשמור אותו פרטי. אין להוסיף אותו למאגר ציבורי או לשלוח אותו בגרסאות ייצור של האפליקציה. אם אסימון רשום ייפרץ, צריך למחוק אותו מיד באמצעות ניהול אסימוני ניפוי באגים במסוף Firebase.

שימוש בספק אימות לצורכי ניפוי באגים בסביבת CI

כך משתמשים בספק אימות לצורכי ניפוי באגים לבדיקות יחידה בסביבת אינטגרציה רציפה (CI):

  1. במסוף Firebase, יוצרים אסימון לניפוי באגים:

    1. במסוף Firebase, עוברים אל Security (אבטחה) > App Check (בדיקת אפליקציות) > הכרטיסייה Apps (אפליקציות).

    2. מוצאים את האפליקציה, לוחצים על סמל האפשרויות הנוספות (3 נקודות) ובוחרים באפשרות ניהול של טוקנים לניפוי באגים.

    3. פועלים לפי ההוראות במסך כדי ליצור אסימון חדש לניפוי באגים.

    האסימון הזה מאפשר גישה לשירותי ה-Backend שלכם ללא מכשיר תקין, ולכן חשוב לשמור אותו פרטי. אל תבצעו commit של האסימון למאגר ציבורי או תשלבו אותו בגרסאות ייצור של האפליקציה. אם אסימון רשום ייפרץ, צריך למחוק אותו מיד באמצעות ניהול אסימוני ניפוי באגים במסוף Firebase.

    צילום מסך של הפריט 'ניהול אסימוני ניפוי באגים' בתפריט

  2. מוסיפים את אסימון הניפוי באגים שיצרתם למאגר המפתחות המאובטח של מערכת ה-CI (לדוגמה, encrypted secrets ב-GitHub Actions או encrypted variables ב-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. בגרסת build לניפוי באגים, לפני שמשתמשים בשירותי קצה עורפי של Firebase, צריך ליצור ולהגדיר את App Check ספק אימות לצורכי ניפוי באגים factory:

    Swift

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

    Objective-C

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

כשהאפליקציה פועלת בסביבת CI, שירותי ה-Backend יקבלו את האסימון שהיא שולחת כחוקי.