โดยค่าเริ่มต้น Firebase Crashlytics จะเครื่องมือโปรเจ็กต์ Flutter โดยอัตโนมัติเพื่ออัปโหลดไฟล์สัญลักษณ์ที่จำเป็นเพื่อให้แน่ใจว่ารายงานข้อขัดข้องได้รับการถอดรหัสซอร์สโค้ดที่เป็นภาษามนุษย์และอ่านได้
ขออภัย อาจมีบางกรณีที่อาจส่งผลให้โปรเจ็กต์ได้รับการกําหนดค่าไม่สมบูรณ์ คู่มือนี้จะอธิบายสิ่งที่การทำงานอัตโนมัติทําและแสดงขั้นตอนแรกในการแก้ไขข้อบกพร่องการตั้งค่าโปรเจ็กต์
แพลตฟอร์มของ Apple
ตรวจสอบการกําหนดค่าสําหรับการอัปโหลดไฟล์ dSYM
การเพิ่มปลั๊กอิน Crashlytics Flutter และการรันคำสั่ง flutterfire configure
จะพยายามเพิ่มสคริปต์การทำงานลงในเวิร์กスペース Xcode ของโปรเจ็กต์ ซึ่งจะค้นหาและอัปโหลดไฟล์สัญลักษณ์ dSYM ที่จำเป็นไปยัง Crashlytics หากไม่มีไฟล์เหล่านี้ คุณจะเห็นการแจ้งเตือน "dSYM ขาดหายไป" ในแดชบอร์ด Crashlytics และแบ็กเอนด์จะระงับข้อยกเว้นไว้จนกว่าจะมีการอัปโหลดไฟล์ที่ขาดหายไป
หากพบปัญหานี้ ก่อนอื่นให้ตรวจสอบว่าคุณได้ติดตั้งสคริปต์เรียกใช้แล้ว โดยทำดังนี้
ค้นหาและเปิดไฟล์เวิร์กสเปซ Xcode ในไดเรกทอรี iOS ของโปรเจ็กต์ (
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace
)ระบุว่ามีการเพิ่มสคริปต์การทำงานชื่อ
[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 ในการแก้ปัญหารายงานที่มีการสร้างความสับสน