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

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

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

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

  1. בגרסת build לניפוי באגים, לפני שמשתמשים בשירותי backend של 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. פועלים לפי ההוראות במסך כדי לרשום את אסימון הניפוי באגים.

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

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

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

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

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

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

    1. במסוף Firebase, עוברים אל Security > App Check > הכרטיסייה Apps.

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

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

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

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

  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 לניפוי באגים, לפני שמשתמשים בשירותי backend של 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 יקבלו את האסימון שהיא שולחת כחוקי.