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

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

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

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

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

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

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

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

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

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

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