ใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องในแพลตฟอร์มของ Apple

หลังจากบังคับใช้ App Check กับบริการแบ็กเอนด์แล้ว ฟีเจอร์ของแอปที่ ขึ้นอยู่กับบริการแบ็กเอนด์ดังกล่าวจะไม่ทำงานในโปรแกรมจำลองหรือจากสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) เนื่องจากสภาพแวดล้อมเหล่านี้ไม่เข้าข่ายเป็นอุปกรณ์ที่ถูกต้อง หากต้องการเรียกใช้แอปในสภาพแวดล้อมเหล่านี้ระหว่างการพัฒนาและ การทดสอบ คุณต้องสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ App Check ผู้ให้บริการการแก้ไขข้อบกพร่องแทนผู้ให้บริการการรับรองความถูกต้องสำหรับเวอร์ชันที่ใช้งานจริง

ใช้ผู้ให้บริการการแก้ไขข้อบกพร่องในโปรแกรมจำลอง

วิธีใช้ผู้ให้บริการการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลองแบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในบิลด์การแก้ไขข้อบกพร่อง ให้สร้างและ ตั้งค่าโรงงานผู้ให้บริการการแก้ไขข้อบกพร่อง 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 ให้ไปที่แท็บความปลอดภัย > App Check > แอป

    2. ค้นหาแอป คลิกเมนูรายการเพิ่มเติม 3 จุด () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

    ภาพหน้าจอของรายการเมนู &quot;จัดการโทเค็นการแก้ไขข้อบกพร่อง&quot; ในคอนโซล Firebase

หลังจากลงทะเบียนโทเค็นกับ App Check แล้ว บริการแบ็กเอนด์จะ ยอมรับโทเค็นดังกล่าวว่าถูกต้อง

โทเค็นนี้อนุญาตให้เข้าถึงบริการแบ็กเอนด์ได้โดยไม่ต้องใช้อุปกรณ์ที่ถูกต้อง ดังนั้นคุณจึงต้องเก็บโทเค็นนี้ไว้เป็นส่วนตัว _**อย่า**_ คอมมิตโทเค็นไปยัง ที่เก็บสาธารณะหรือจัดส่งโทเค็นในบิลด์เวอร์ชันที่ใช้งานจริงของแอป หาก โทเค็นที่ลงทะเบียนถูกบุกรุก ให้ลบทิ้งทันทีโดยใช้ จัดการโทเค็นการแก้ไขข้อบกพร่อง ในคอนโซล Firebase

ใช้ผู้ให้บริการการแก้ไขข้อบกพร่องในสภาพแวดล้อม CI

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องสำหรับการทำ Unit Test ในสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) มีดังนี้

  1. สร้างโทเค็นการแก้ไขข้อบกพร่องในคอนโซล Firebase โดยทำดังนี้

    1. ในคอนโซล Firebase ให้ไปที่แท็บความปลอดภัย > App Check > แอป

    2. ค้นหาแอป คลิกเมนูรายการเพิ่มเติม 3 จุด () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    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. ในบิลด์การแก้ไขข้อบกพร่อง ให้สร้างและ ตั้งค่าโรงงานผู้ให้บริการการแก้ไขข้อบกพร่อง 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 บริการแบ็กเอนด์จะยอมรับโทเค็นที่แอปส่งมาว่าถูกต้อง