โดยค่าเริ่มต้น 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
) ตรวจสอบว่าคุณมีรายการต่อไปนี้
การตั้งค่า:
คลิกแท็บเฟสของการสร้าง แล้วขยายส่วนเรียกใช้สคริปต์
ในส่วนไฟล์อินพุต ให้ตรวจสอบว่าคุณมีเส้นทางสำหรับตำแหน่งต่างๆ ของไฟล์ต่อไปนี้
${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 จะแสดงข้อความ "ขาด dSYM" การแจ้งเตือนใน คอนโซล Firebase หากคุณได้รับการแจ้งเตือนนี้ ให้ตรวจสอบก่อนว่า Xcode สร้าง dSYM ที่ถูกต้องสำหรับทุกบิลด์:
เปิดโปรเจ็กต์ใน Xcode แล้วเลือกไฟล์โปรเจ็กต์ใน Xcode ตัวนำทาง
เลือกเป้าหมายบิลด์หลัก
เปิดแท็บการตั้งค่าบิลด์ของเป้าหมาย แล้วคลิกทั้งหมด
ค้นหา
debug information format
ตั้งค่า Debug Information Format เป็น DWARF with dSYM File ประเภทบิลด์ของคุณ
สร้างแอปอีกครั้ง
ตอนนี้รายงานข้อขัดข้องของคุณควรปรากฏใน หน้าแดชบอร์ด Crashlytics หากปัญหายังคงอยู่หรือ พบข้อผิดพลาดอื่นๆ ให้ลองค้นหา dSYM และ กำลังอัปโหลดไปยัง Crashlytics ด้วยตนเอง
ค้นหา dSYM ในเครื่อง
เรียกใช้คำสั่งต่อไปนี้เพื่อแสดง dSYMs ทั้งหมดของคุณ UUID ในเครื่องและ ค้นหา dSYM ที่หายไป
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
เมื่อพบ dSYM แล้ว ให้อัปโหลดไปยัง Crashlytics ด้วยตนเอง
หากคำสั่ง mdfind
ไม่แสดงผลลัพธ์ใดๆ คุณสามารถดูใน
ไดเรกทอรี Products
ที่ใช้ .app
ของคุณ (โดยค่าเริ่มต้นคือ Products
ไดเรกทอรีอยู่ใน Derived Data
) หากแอปมีการเผยแพร่เป็นเวอร์ชันที่ใช้งานจริง
คุณสามารถค้นหา dSYM ในไดเรกทอรี .xcarchive
บนดิสก์ได้ด้วย
ใน Xcode ให้เปิดหน้าต่างผู้จัด แล้วเลือกแอปจาก รายการ Xcode จะแสดงรายการที่เก็บถาวรสำหรับโปรเจ็กต์ของคุณ
กด Ctrl และคลิกที่เก็บถาวรเพื่อดูใน Finder กด Control และคลิกอีกครั้ง และ แล้วคลิกแสดงเนื้อหาแพ็กเกจ
ภายใน
.xcarchive
เป็นไดเรกทอรี dSYMs ที่มี dSYM ที่สร้างขึ้นเป็น ในกระบวนการเก็บถาวรของ Xcode
อัปโหลด dSYM
Crashlytics รองรับการอัปโหลดไฟล์ dSYM หลายวิธี ไม่ว่าจะเป็น โดยอัตโนมัติหรือด้วยตนเอง
(แนะนำ) ประมวลผล dSYM และอัปโหลดไฟล์โดยอัตโนมัติ
เมื่อตั้งค่า Crashlytics เป็นครั้งแรก คุณน่าจะกำหนดค่านี้ไว้ ลักษณะการอัปโหลดอัตโนมัติสำหรับแอป แต่หากการอัปโหลดอัตโนมัติ ไม่สำเร็จ โปรดตรวจสอบว่าการกำหนดค่าถูกต้อง
อัปโหลดไฟล์ dSYM ด้วยตนเอง
หากการอัปโหลดอัตโนมัติล้มเหลว คุณสามารถอัปโหลดไฟล์ dSYM ด้วยตนเองโดยใช้ ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
ตัวเลือกที่ 1: ใช้ "ลากและวาง" แบบคอนโซล ตัวเลือกในการอัปโหลดไฟล์ ZIP ที่มีไฟล์ dSYM (ไปที่ คอนโซล Firebase > Crashlytics แท็บ dSYM)
ตัวเลือกที่ 2: ใช้สคริปต์
upload-symbols
ที่คุณใช้เรียกใช้ได้ ที่ใดก็ได้ในกระบวนการสร้างของคุณเพื่ออัปโหลดไฟล์ dSYM ด้วยตนเอง หากต้องการเรียกใช้ฟังก์ชัน สคริปต์upload-symbols
ใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ตัวเลือก ก: ระบุบรรทัดต่อไปนี้ในกระบวนการสร้างของคุณ
find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
ตัวเลือก ข: เรียกใช้สคริปต์โดยตรงจากเทอร์มินัล โดยทำดังนี้
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
เรียกใช้หมายเหตุการใช้งานและคำแนะนำเพิ่มเติมเกี่ยวกับสคริปต์นี้
upload-symbols
ที่มีพารามิเตอร์--help