รับรายงานข้อขัดข้องที่อ่านได้ในแดชบอร์ด Crashlytics

ตามค่าเริ่มต้น Firebase Crashlytics จะประมวลผลไฟล์สัญลักษณ์การแก้ไขข้อบกพร่อง (dSYM) โดยอัตโนมัติเพื่อให้คุณได้รับรายงานข้อขัดข้องที่ไม่ซับซ้อนและมนุษย์สามารถอ่านได้ โดยปกติคุณจะกำหนดค่าลักษณะการทำงานนี้ในระหว่างการตั้งค่าเริ่มต้นของ Crashlytics ในแอปของคุณ โดยเฉพาะโดย การเพิ่มสคริปต์เรียกใช้ ที่จะอัปโหลดไฟล์ dSYM โดยอัตโนมัติในระหว่างขั้นตอนการสร้างแอปของคุณ

ขออภัย มีบางกรณีที่อาจทำให้การอัปโหลดไฟล์ dSYM อัตโนมัติของคุณล้มเหลว คู่มือนี้จะอธิบายวิธีแก้ปัญหาเมื่อ Crashlytics ไม่พบไฟล์ dSYM ของแอป

ตรวจสอบให้แน่ใจว่า Xcode สามารถประมวลผล dSYM และอัปโหลดไฟล์ได้โดยอัตโนมัติ

เมื่อตั้งค่า Crashlytics ในแอป คุณ ได้กำหนดค่าสคริปต์เรียก ใช้ให้ประมวลผล dSYM และอัปโหลดไฟล์โดยอัตโนมัติ

ตรวจสอบให้แน่ใจว่าการกำหนดค่าของคุณสำหรับสคริปต์เรียกใช้ Crashlytics เป็นเวอร์ชันล่าสุดด้วยข้อกำหนดใหม่ที่เริ่มต้นด้วย Xcode 15 หากการกำหนดค่าของคุณไม่อัปเดต คุณอาจได้รับข้อผิดพลาดต่อไปนี้:
error: Info.plist Error Unable to process Info.plist at path ...

โดยเฉพาะอย่างยิ่ง Xcode 15 และใหม่กว่า กำหนดให้คุณต้องระบุชุดตำแหน่งไฟล์ที่สมบูรณ์ยิ่งขึ้น สำหรับสคริปต์เรียกใช้ Crashlytics ( firebase-ios-sdk/Crashlytics/run ) ตรวจสอบให้แน่ใจว่าคุณมีการตั้งค่าต่อไปนี้:

  1. คลิกแท็บ Build Phases จากนั้นขยายส่วน Run Script

  2. ในส่วน ไฟล์อินพุต ตรวจสอบให้แน่ใจว่าคุณมีเส้นทางสำหรับตำแหน่งของไฟล์ต่อไปนี้:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

ตรวจสอบว่า Xcode กำลังผลิต dSYM หรือไม่

บ่อยครั้งที่ไฟล์ dSYM หายไปเนื่องจาก Xcode ไม่ได้สร้างมันขึ้นมา เมื่อการอัปโหลดล้มเหลว Crashlytics จะแสดงการแจ้งเตือน "Missing dSYM" ในคอนโซล Firebase หากคุณได้รับการแจ้งเตือนนี้ ให้ตรวจสอบก่อนว่า Xcode กำลังสร้าง dSYM ที่ถูกต้องสำหรับทุกบิวด์:

  1. เปิดโปรเจ็กต์ของคุณใน Xcode จากนั้นเลือกไฟล์โปรเจ็กต์ใน Xcode Navigator

  2. เลือกเป้าหมายการสร้างหลักของคุณ

  3. เปิดแท็บ การตั้งค่า Build ของเป้าหมาย จากนั้นคลิก All

  4. ค้นหา debug information format

  5. ตั้ง ค่ารูปแบบข้อมูลการแก้ไขจุดบกพร่อง เป็น DWARF ด้วยไฟล์ dSYM สำหรับบิลด์ทุกประเภทของคุณ

  6. สร้างแอปของคุณใหม่

รายงานข้อขัดข้องของคุณควรปรากฏใน แดชบอร์ด Crashlytics แล้ว หากปัญหายังคงอยู่หรือคุณพบข้อผิดพลาดอื่นๆ ให้ลอง ค้นหา dSYM ของคุณ แล้ว อัปโหลดไปยัง Crashlytics ด้วยตนเอง

ค้นหา dSYM ของคุณบนเครื่องท้องถิ่น

เรียกใช้คำสั่งต่อไปนี้เพื่อแสดง UUID ของ dSYM ทั้งหมดบนเครื่องของคุณและค้นหา dSYM ที่หายไป:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

เมื่อคุณพบ dSYM แล้ว ให้อัปโหลดไปยัง Crashlytics ด้วยตนเอง หากคำสั่ง mdfind ไม่ส่งคืนผลลัพธ์ใดๆ คุณสามารถดูในไดเร็กทอรี Products ซึ่งมี .app ของคุณอยู่ (โดยค่าเริ่มต้น ไดเร็กทอรี Products จะอยู่ใน Derived Data ) หากแอปของคุณเปิดตัวสู่การใช้งานจริง คุณสามารถค้นหา dSYM ของแอปในไดเร็กทอรี .xcarchive บนดิสก์ได้:

  1. ใน Xcode ให้เปิดหน้าต่าง ตัวจัดระเบียบ จากนั้นเลือกแอพของคุณจากรายการ Xcode แสดงรายการเอกสารสำคัญสำหรับโครงการของคุณ

  2. กดปุ่ม Control ค้างไว้แล้วคลิกไฟล์เก็บถาวรเพื่อดูใน Finder Control-คลิกอีกครั้ง จากนั้นคลิก Show Package Contents

  3. ภายใน .xcarchive คือไดเร็กทอรี dSYMs ที่มี dSYM ที่สร้างขึ้นโดยเป็นส่วนหนึ่งของกระบวนการเก็บถาวรของ Xcode

อัปโหลด dSYM ของคุณ

Crashlytics รองรับหลายวิธีในการอัปโหลดไฟล์ dSYM ของคุณ ทั้ง โดยอัตโนมัติ หรือ ด้วยตนเอง

(แนะนำ) ประมวลผล dSYM ของคุณและอัปโหลดไฟล์โดยอัตโนมัติ

เมื่อคุณตั้งค่า Crashlytics ในตอนแรก คุณน่าจะกำหนดค่าลักษณะการอัปโหลดอัตโนมัตินี้สำหรับแอปของคุณ อย่างไรก็ตาม หากการอัปโหลดอัตโนมัติล้มเหลว ให้ตรวจสอบว่าการกำหนดค่าของคุณถูกต้อง

อัปโหลดไฟล์ dSYM ของคุณด้วยตนเอง

หากการอัปโหลดอัตโนมัติล้มเหลว คุณสามารถอัปโหลดไฟล์ dSYM ด้วยตนเองได้โดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

  • ตัวเลือกที่ 1 : ใช้ตัวเลือก "ลากและวาง" บนคอนโซลเพื่ออัปโหลดไฟล์ zip ที่มีไฟล์ dSYM ของคุณ (ไปที่คอนโซล Firebase > Crashlytics > แท็บ dSYMs )

  • ตัวเลือกที่ 2 : ใช้สคริปต์ upload-symbols ที่คุณสามารถเรียกได้จากทุกที่ในกระบวนการสร้างของคุณเพื่ออัปโหลดไฟล์ dSYM ของคุณด้วยตนเอง หากต้องการเรียกใช้สคริปต์ upload-symbols ให้ใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้:

    • ตัวเลือก A : รวมบรรทัดต่อไปนี้ในกระบวนการสร้างของคุณ:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • ตัวเลือก B : เรียกใช้สคริปต์โดยตรงจากเทอร์มินัลของคุณ:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    สำหรับบันทึกการใช้งานและคำแนะนำเพิ่มเติมเกี่ยวกับสคริปต์นี้ ให้รัน upload-symbols ด้วยพารามิเตอร์ --help