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

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

שימוש בספק ניפוי הבאגים בפיתוח

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

  1. בגרסת הניפוי באגים, לפני שמשתמשים בשירותי עורף קצה של Firebase, צריך ליצור ולהגדיר את App Check debug provider 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. מפעילים רישום ביומן לניפוי באגים בפרויקט Xcode (גרסה 11.0 ואילך):

    1. פותחים את Product (מוצר) > Scheme (סכימה) > Edit scheme (עריכת הסכימה).
    2. בתפריט הימני, בוחרים באפשרות Run (הפעלה) ואז בכרטיסייה Arguments (ארגומנטים).
    3. בקטע Arguments Passed on Launch (ארגומנטים שהערך שלהם נקבע בהפעלה), מוסיפים את הערך -FIRDebugEnabled.
  3. מפעילים את האפליקציה. אסימון ניפוי באגים מקומי יתועד ביומן כשה-SDK ינסה לשלוח בקשה לשרת העורפי. לדוגמה:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. בקטע App Check במסוף Firebase, בוחרים באפשרות ניהול אסימוני ניפוי באגים מתוך תפריט האפשרויות הנוספות של האפליקציה. לאחר מכן, רושמים את אסימון ניפוי הבאגים שנרשם בשלב הקודם.

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

אחרי שרושמים את האסימון, שירותי הקצה העורפי של Firebase יקבלו אותו כאסימון תקף.

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

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

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

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

    הטוקן הזה מאפשר גישה למשאבי Firebase בלי מכשיר תקין, ולכן חשוב לשמור אותו פרטי. אל תעלו אותו למאגר ציבורי, ואם טוקן רשום נפרץ, צריך לבטל אותו מיד במסוף 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, מוסיפים משתנה סביבה לתוכנית הבדיקה עם השם 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. בגרסת הניפוי באגים, לפני שמשתמשים בשירותי עורף קצה של Firebase, צריך ליצור ולהגדיר את App Check debug provider 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 של Firebase יקבלו את האסימון שהיא שולחת כחוקי.