| เลือกแพลตฟอร์ม: | iOS+ Android Flutter Unity |
โดยค่าเริ่มต้น 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ลงใน Build Phases ของเป้าหมาย Runner หรือไม่ดูส่วนที่เกี่ยวข้องด้านล่างเพื่อดูว่าไม่มีสคริปต์ที่เรียกใช้หรือ มีสคริปต์ที่เรียกใช้
ตรวจสอบการกำหนดค่าเวอร์ชันสำหรับ Flutter และ Crashlytics (หากใช้ Flag --split-debug-info)
หากโปรเจ็กต์ Flutter ใช้แฟล็ก --split-debug-info (และอาจใช้แฟล็ก --obfuscate ด้วย) คุณจะต้องทำตามขั้นตอนเพิ่มเติมเพื่อแสดง Stack Trace ที่อ่านได้สำหรับแอป
ตรวจสอบว่าโปรเจ็กต์ของคุณใช้การกำหนดค่าเวอร์ชันที่แนะนำ (Flutter 3.12.0 ขึ้นไปและCrashlyticsปลั๊กอิน Flutter 3.3.4 ขึ้นไป) เพื่อให้โปรเจ็กต์ สร้างและอัปโหลดสัญลักษณ์ Flutter (ไฟล์ dSYM) ไปยัง Crashlyticsได้โดยอัตโนมัติ
Android
ตรวจสอบการกำหนดค่าการขึ้นต่อกัน
คำสั่ง flutterfire configure จะพยายามเพิ่มทรัพยากร Dependency ที่จำเป็นลงใน
ไฟล์บิลด์ 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 (หากใช้แฟล็ก --split-debug-info)
หากโปรเจ็กต์ Flutter ใช้แฟล็ก --split-debug-info (และอาจใช้แฟล็ก --obfuscate ด้วย) คุณจะต้องทำตามขั้นตอนเพิ่มเติมเพื่อแสดง Stack Trace ที่อ่านได้สำหรับแอป
ใช้ Firebase CLI (v.11.9.0 ขึ้นไป) เพื่ออัปโหลดสัญลักษณ์การแก้ไขข้อบกพร่องของ Flutter คุณต้องอัปโหลดสัญลักษณ์การแก้ไขข้อบกพร่องก่อนรายงานข้อขัดข้องจากบิลด์โค้ดที่ผ่านการปรับให้ยากต่อการอ่าน (Obfuscate)
จากไดเรกทอรีรากของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID: รหัสแอป Android ของ Firebase (ไม่ใช่ชื่อแพ็กเกจ)
ตัวอย่างรหัสแอป Android ของ Firebase:1:567383003300:android:17104a2ced0c9b9bPATH/TO/symbols: ไดเรกทอรีเดียวกันกับที่คุณ ส่งไปยังแฟล็ก--split-debug-infoเมื่อสร้างแอปพลิเคชัน
หากยังพบปัญหา โปรดดูคำแนะนำเฉพาะสำหรับ Android ในการแก้ปัญหาเกี่ยวกับรายงานที่ผ่านการปกปิด