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


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

ขออภัย อาจมีบางกรณีที่อาจส่งผลให้โปรเจ็กต์ได้รับการกําหนดค่าไม่สมบูรณ์ คู่มือนี้จะอธิบายสิ่งที่การทำงานอัตโนมัติทําและแสดงขั้นตอนแรกในการแก้ไขข้อบกพร่องการตั้งค่าโปรเจ็กต์

แพลตฟอร์มของ Apple

ตรวจสอบการกําหนดค่าสําหรับการอัปโหลดไฟล์ dSYM

การเพิ่มปลั๊กอิน Crashlytics Flutter และการรันคำสั่ง flutterfire configure จะพยายามเพิ่มสคริปต์การทำงานลงในเวิร์กスペース Xcode ของโปรเจ็กต์ ซึ่งจะค้นหาและอัปโหลดไฟล์สัญลักษณ์ dSYM ที่จำเป็นไปยัง Crashlytics หากไม่มีไฟล์เหล่านี้ คุณจะเห็นการแจ้งเตือน "dSYM ขาดหายไป" ในแดชบอร์ด Crashlytics และแบ็กเอนด์จะระงับข้อยกเว้นไว้จนกว่าจะมีการอัปโหลดไฟล์ที่ขาดหายไป

หากพบปัญหานี้ ก่อนอื่นให้ตรวจสอบว่าคุณได้ติดตั้งสคริปต์เรียกใช้แล้ว โดยทำดังนี้

  1. ค้นหาและเปิดไฟล์เวิร์กสเปซ Xcode ในไดเรกทอรี iOS ของโปรเจ็กต์ (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace)

  2. ระบุว่ามีการเพิ่มสคริปต์การทำงานชื่อ [firebase_crashlytics] Crashlytics Upload Symbols ไปยังระยะการสร้างของเป้าหมาย Runner หรือไม่

    ดูในส่วนที่เกี่ยวข้องด้านล่างเพื่อดูว่าสคริปต์เรียกใช้ไม่มีอยู่หรือสคริปต์เรียกใช้มีอยู่

ตรวจสอบการกำหนดค่าเวอร์ชันสำหรับ Flutter และ Crashlytics (หากใช้ Flag --split-debug-info)

หากโปรเจ็กต์ Flutter ใช้ Flag --split-debug-info (และ Flag --obfuscate ด้วยหากต้องการ) คุณจะต้องทําตามขั้นตอนเพิ่มเติมเพื่อแสดงสแต็กเทรซที่อ่านได้สําหรับแอป

ตรวจสอบว่าโปรเจ็กต์ใช้การกำหนดค่าเวอร์ชันที่แนะนำ (Flutter 3.12.0 ขึ้นไปและCrashlyticsปลั๊กอิน Flutter 3.3.4 ขึ้นไป) เพื่อให้โปรเจ็กต์สร้างและอัปโหลดสัญลักษณ์ Flutter (ไฟล์ dSYM) ไปยัง Crashlytics โดยอัตโนมัติ

Android

ตรวจสอบการกำหนดค่าทรัพยากร Dependency

คำสั่ง flutterfire configure จะพยายามเพิ่มการพึ่งพาที่จำเป็นลงในไฟล์บิลด์ Gradle ของโปรเจ็กต์ หากไม่มีไฟล์เหล่านี้ รายงานข้อขัดข้องในคอนโซล Firebase อาจถูกสร้างความสับสนหากเปิดใช้การสร้างความสับสน

ตรวจสอบว่ามีบรรทัดต่อไปนี้ใน build.gradle ระดับโปรเจ็กต์ และ build.gradle ระดับแอป

  • ในไฟล์บิลด์ระดับโปรเจ็กต์ (android/build.gradle) ให้มองหาบรรทัดต่อไปนี้

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • ในไฟล์บิลด์ระดับแอป (android/app/build.gradle) ให้มองหาบรรทัดต่อไปนี้

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

ตรวจสอบว่าคุณใช้ CLI เพื่ออัปโหลดสัญลักษณ์ Flutter (หากใช้ Flag --split-debug-info)

หากโปรเจ็กต์ Flutter ใช้ Flag --split-debug-info (และ Flag --obfuscate ด้วยหากต้องการ) คุณจะต้องทําตามขั้นตอนเพิ่มเติมเพื่อแสดงสแต็กเทรซที่อ่านได้สําหรับแอป

ใช้ Firebase CLI (v.11.9.0 ขึ้นไป) เพื่ออัปโหลดสัญลักษณ์การแก้ไขข้อบกพร่องของ Flutter คุณต้องอัปโหลดสัญลักษณ์การแก้ไขข้อบกพร่องก่อนรายงานข้อขัดข้องจากบิลด์โค้ดที่มีการสร้างความสับสน

จากไดเรกทอรีรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: รหัสแอป Firebase สำหรับ Android (ไม่ใช่ชื่อแพ็กเกจ)
    ตัวอย่างรหัสแอป Firebase สำหรับ Android: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols: ไดเรกทอรีเดียวกับที่คุณส่งให้กับ Flag --split-debug-info เมื่อสร้างแอปพลิเคชัน

หากยังพบปัญหาอยู่ โปรดดูคำแนะนำเฉพาะสำหรับ Android ในการแก้ปัญหารายงานที่มีการสร้างความสับสน