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

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

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

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

  1. בגרסת ה-build לניפוי באגים, לפני שמשתמשים בשירותי הקצה העורפי של Firebase, יוצרים ומגדירים את ה-factory של ספק האימות לצורכי ניפוי באגים של 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. משיגים את טוקן ניפוי הבאגים:

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

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

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

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

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

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

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

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

    2. מוצאים את האפליקציה, לוחצים על סמל האפשרויות הנוספות () ובוחרים באפשרות Manage debug tokens.

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

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

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

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