| เลือกแพลตฟอร์ม: | iOS+ Android Flutter Unity |
โดยค่าเริ่มต้น Firebase Crashlytics จะติดตั้งเครื่องมือในโปรเจ็กต์ Flutter โดยอัตโนมัติเพื่ออัปโหลดไฟล์สัญลักษณ์ที่จำเป็น ซึ่งจะช่วยให้รายงานข้อขัดข้องได้รับการ ยกเลิกการปกปิดและอ่านได้
อย่างไรก็ตาม มีบางกรณีที่อาจทำให้โปรเจ็กต์กำหนดค่าไม่สมบูรณ์ คู่มือนี้จะอธิบายสิ่งที่ระบบอัตโนมัติทำและขั้นตอนแรกในการแก้ไขข้อบกพร่องของการตั้งค่าโปรเจ็กต์
แพลตฟอร์มของ Apple
ตรวจสอบการกำหนดค่าสำหรับการอัปโหลดไฟล์ dSYM
การเพิ่มปลั๊กอิน Crashlytics Flutter และเรียกใช้คำสั่ง
flutterfire configure จะพยายามเพิ่มสคริปต์การทำงานลงในพื้นที่ทำงาน Xcode ของ
โปรเจ็กต์ ซึ่งจะค้นหาและอัปโหลดไฟล์สัญลักษณ์ dSYM ที่จำเป็น
ไปยัง Crashlytics หากไม่มีไฟล์เหล่านี้ คุณจะเห็นการแจ้งเตือน "Missing dSYM" ใน
แดชบอร์ด Crashlytics และแบ็กเอนด์จะระงับข้อยกเว้นไว้
จนกว่าจะมีการอัปโหลดไฟล์ที่ขาดหายไป
หากพบปัญหานี้ ให้ตรวจสอบก่อนว่าคุณได้ติดตั้งสคริปต์การทำงานแล้ว โดยทำดังนี้
ค้นหาและเปิดไฟล์พื้นที่ทำงาน Xcode ในไดเรกทอรี iOS ของโปรเจ็กต์ (
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace)ระบุว่ามีการเพิ่มสคริปต์การทำงานชื่อ
[firebase_crashlytics] Crashlytics Upload Symbolsลงในระยะการสร้างของเป้าหมาย Runner หรือไม่ดูส่วนที่เกี่ยวข้องด้านล่างเพื่อดูว่า สคริปต์การทำงาน ไม่มี หรือมีอยู่ หรือ สคริปต์การทำงานมีอยู่
ตรวจสอบการกำหนดค่าเวอร์ชันสำหรับ Flutter และ Crashlytics (หากใช้แฟล็ก --split-debug-info)
หากโปรเจ็กต์ Flutter ใช้แฟล็ก --split-debug-info (และอาจใช้แฟล็ก --obfuscate ด้วย) คุณจะต้องทำตามขั้นตอนเพิ่มเติมเพื่อแสดง Stack Trace ที่อ่านได้สำหรับแอป
ตรวจสอบว่าโปรเจ็กต์ใช้การกำหนดค่าเวอร์ชันที่แนะนำ (Flutter 3.12.0+ และ Crashlytics ปลั๊กอิน Flutter 3.3.4+) เพื่อให้โปรเจ็กต์ สร้างและอัปโหลดสัญลักษณ์ Flutter (ไฟล์ dSYM) ไปยัง Crashlytics ได้โดยอัตโนมัติ
Android
ตรวจสอบการกำหนดค่าทรัพยากร Dependency
คำสั่ง flutterfire configure จะพยายามเพิ่มทรัพยากร Dependency ที่จำเป็นลงในไฟล์บิลด์ Gradle ของโปรเจ็กต์ หากไม่มีทรัพยากร Dependency เหล่านี้ รายงานข้อขัดข้องใน
คอนโซล 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 (หากใช้แฟล็ก --split-debug-info)
หากโปรเจ็กต์ Flutter ใช้แฟล็ก --split-debug-info (และอาจใช้แฟล็ก --obfuscate ด้วย) คุณจะต้องทำตามขั้นตอนเพิ่มเติมเพื่อแสดง Stack Trace ที่อ่านได้สำหรับแอป
ใช้ 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:17104a2ced0c9b9bPATH/TO/symbols: ไดเรกทอรีเดียวกับที่คุณ ส่งไปยังแฟล็ก--split-debug-infoเมื่อสร้างแอปพลิเคชัน
หากปัญหายังคงอยู่ โปรดดูคู่มือเฉพาะของ Android สำหรับการแก้ปัญหารายงานที่ปกปิด