การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณด้วยปลั๊กอิน Crashlytics Flutter เพื่อให้คุณได้รับรายงานข้อขัดข้องที่ครอบคลุมในคอนโซล Firebase
การตั้งค่า Crashlytics เกี่ยวข้องกับการใช้ทั้งเครื่องมือบรรทัดคำสั่งและ IDE ของคุณ หากต้องการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้ส่งข้อยกเว้นการทดสอบเพื่อส่งรายงานข้อขัดข้องแรกไปยัง Firebase
ก่อนที่คุณจะเริ่มต้น
หากคุณยังไม่ได้ ดำเนินการ ให้กำหนดค่าและเริ่มต้น Firebase ในโครงการ Flutter ของคุณ
แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ปราศจากข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase
แพลตฟอร์ม Android และ Apple ทั้งหมดที่รองรับโดย Crashlytics (ยกเว้น watchOS) สามารถใช้ประโยชน์จากคุณสมบัติเหล่านี้จาก Google Analytics
ตรวจสอบให้แน่ใจว่าเปิดใช้งาน Google Analytics ในโครงการ Firebase ของคุณ: ไปที่
> การตั้งค่าโครงการ > แท็บ การผสานรวม จากนั้น ทำตามคำแนะนำบนหน้าจอสำหรับ Google Analytics
ขั้นตอนที่ 1 : เพิ่ม Crashlytics ในโครงการ Flutter ของคุณ
จากรูทของโปรเจ็กต์ Flutter ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Crashlytics Flutter:
flutter pub add firebase_crashlytics
จากไดเรกทอรีรากของโครงการ Flutter ให้รันคำสั่งต่อไปนี้:
flutterfire configure
การเรียกใช้คำสั่งนี้ทำให้มั่นใจได้ว่าการกำหนดค่า Firebase ของแอป Flutter นั้นเป็นปัจจุบัน และสำหรับ Android ให้เพิ่มปลั๊กอิน Crashlytics Gradle ที่จำเป็นลงในแอปของคุณ
เมื่อเสร็จแล้ว ให้สร้างโปรเจ็กต์ Flutter ของคุณใหม่:
flutter run
(ไม่บังคับ) หากโครงการ Flutter ของคุณใช้ แฟล็ก
--split-debug-info
(และตัวเลือก--obfuscate
flag ) คุณต้องใช้ Firebase CLI (v.11.9.0+) เพื่ออัปโหลดสัญลักษณ์ Androidจากไดเรกทอรีรากของโครงการ Flutter ให้รันคำสั่งต่อไปนี้:
firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols
ไดเร็กทอรี
PATH/TO /symbols
เป็นไดเร็กทอรีเดียวกับที่คุณส่งผ่านไปยังแฟล็ก--split-debug-info
เมื่อสร้างแอปพลิเคชัน
ขั้นตอนที่ 2 : กำหนดค่าตัวจัดการข้อขัดข้อง
คุณสามารถตรวจจับข้อผิดพลาดทั้งหมดที่เกิดขึ้นภายใน Flutter framework ได้โดยอัตโนมัติโดยการแทนที่ FlutterError.onError
ด้วย FirebaseCrashlytics.instance.recordFlutterFatalError
:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
หากต้องการตรวจจับข้อผิดพลาดแบบอะซิงโครนัสที่ไม่ได้รับการจัดการโดย Flutter framework ให้ใช้ PlatformDispatcher.instance.onError
:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
สำหรับตัวอย่างวิธีจัดการกับข้อผิดพลาดประเภทอื่นๆ โปรดดู กำหนดรายงานข้อขัดข้องเอง
ขั้นตอนที่ 3 : บังคับให้ทดสอบข้อขัดข้องเพื่อสิ้นสุดการตั้งค่า
หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับให้ส่งข้อยกเว้นการทดสอบ
เพิ่มโค้ดลงในแอปของคุณเพื่อบังคับให้ส่งข้อยกเว้นการทดสอบ
หากคุณได้เพิ่มตัวจัดการข้อผิดพลาดที่เรียก
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
ไปที่Zone
ระดับบนสุด คุณสามารถใช้โค้ดต่อไปนี้เพื่อเพิ่มปุ่มให้กับแอปของคุณ ซึ่งเมื่อกดแล้วจะเกิดข้อผิดพลาด ข้อยกเว้นการทดสอบ:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
สร้างและเรียกใช้แอปของคุณ
บังคับให้ส่งข้อยกเว้นการทดสอบเพื่อส่งรายงานแรกของแอปของคุณ:
เปิดแอปของคุณจากอุปกรณ์ทดสอบหรือโปรแกรมจำลอง
ในแอปของคุณ ให้กดปุ่มข้อยกเว้นการทดสอบที่คุณเพิ่มโดยใช้โค้ดด้านบน
ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องในการทดสอบของคุณ
หากคุณรีเฟรชคอนโซลแล้ว แต่ยังไม่พบการทดสอบข้อขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้งานการบันทึกการแก้ไขจุดบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่
และนั่นแหล่ะ! ขณะนี้ Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง และสำหรับ Android ข้อผิดพลาดที่ไม่ร้ายแรงและ ANR ไปที่ แดชบอร์ด Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ
ขั้นตอนถัดไป
ปรับแต่งการตั้งค่ารายงานข้อขัดข้องของคุณ โดยเพิ่มการรายงานแบบเลือกรับ บันทึก คีย์ และการติดตามข้อผิดพลาดที่ไม่ร้ายแรงเพิ่มเติม
ผสานรวมกับ Google Play เพื่อให้คุณสามารถกรองรายงานข้อขัดข้องของแอป Android ตามแทร็กของ Google Play ได้โดยตรงในแดชบอร์ด Crashlytics สิ่งนี้ทำให้คุณสามารถมุ่งเน้นแดชบอร์ดของคุณไปที่งานสร้างเฉพาะได้ดีขึ้น
ดูสแต็กเทรซและสถิติข้อขัดข้องพร้อมกับโค้ดของคุณ ด้วยหน้าต่าง App Quality Insights ใน Android Studio (ใช้งานได้ตั้งแต่ Electric Eel 2022.1.1)