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

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

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

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

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

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

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

  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. בגרסה לניפוי באגים, לפני שמשתמשים בשירותי הקצה העורפי של Firebase, יוצרים ומגדירים את המפעל של ספק ניפוי הבאגים App Check:

    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, שירותי הקצה העורפי של Firebase יקבלו את האסימון שהיא שולחת כתקף.