Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

เริ่มต้นใช้งาน Firebase Crashlytics

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณด้วย Firebase Crashlytics SDK เพื่อให้คุณได้รับรายงานข้อขัดข้องที่ครอบคลุมในคอนโซล Firebase

การตั้งค่า Crashlytics ต้องการงานทั้งในคอนโซล Firebase และ IDE ของคุณ (เช่น การเพิ่มไฟล์การกำหนดค่า Firebase และ Crashlytics SDK) หากต้องการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้ทดสอบข้อขัดข้องเพื่อส่งรายงานข้อขัดข้องฉบับแรกไปยัง Firebase

ก่อนที่คุณจะเริ่มต้น

  1. หากคุณยังไม่ได้ดำเนินการ ให้ เพิ่ม Firebase ในโครงการ Unity ของคุณ หากคุณไม่มีโครงการ Unity คุณสามารถดาวน์โหลด แอปตัวอย่าง ได้

  2. แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ปราศจากข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase

    • หากโปรเจ็กต์ Firebase ที่มีอยู่ของคุณไม่ได้เปิดใช้งาน Google Analytics คุณสามารถเปิดใช้งาน Google Analytics จาก แท็บ การผสานรวม ของ > การตั้ง ค่าโปรเจ็ กต์ในคอนโซล Firebase

    • หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ระหว่างเวิร์กโฟลว์การสร้างโปรเจ็กต์

ขั้นตอนที่ 1 : เพิ่ม Crashlytics SDK ลงในแอปของคุณ

โปรดทราบว่าเมื่อคุณลงทะเบียนโปรเจ็กต์ Unity กับโปรเจ็กต์ Firebase คุณอาจดาวน์โหลด Firebase Unity SDK และเพิ่มแพ็คเกจ Crashlytics แล้ว

  1. ดาวน์โหลด Firebase Unity SDK จากนั้นคลายซิป SDK ในที่ที่สะดวก

    Firebase Unity SDK ไม่ใช่เฉพาะแพลตฟอร์ม

  2. ในโครงการ Unity ที่เปิดอยู่ของคุณ ให้ไปที่ สินทรัพย์ > นำเข้าแพ็คเกจ > แพ็คเกจแบบกำหนดเอง

  3. จาก SDK ที่คลายซิป ให้เลือกเพื่อนำเข้า Crashlytics SDK ( FirebaseCrashlytics.unitypackage )

    คุณสามารถนำเข้า ผลิตภัณฑ์ Firebase อื่นๆ ที่รองรับได้ เช่นกัน

  4. ในหน้าต่าง Import Unity Package ให้คลิก Import

ตัวยึด102

ขั้นตอนที่ 2 : เริ่มต้น Crashlytics

  1. สร้างสคริปต์ C# ใหม่ จากนั้นเพิ่มไปยัง GameObject ในฉาก

    1. เปิดฉากแรกของคุณ จากนั้นสร้าง GameObject ว่างชื่อ CrashlyticsInitializer

    2. คลิก เพิ่มส่วนประกอบ ในตัว ตรวจสอบ สำหรับวัตถุใหม่

    3. เลือกสคริปต์ CrashlyticsInit ของคุณเพื่อเพิ่มลงในออบเจ็กต์ CrashlyticsInitializer

  2. เริ่มต้น Crashlytics ในวิธีการ Start ของสคริปต์:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase and Crashlytics
    using Firebase;
    using Firebase.Crashlytics;
    
    public class CrashlyticsInit : MonoBehaviour {
        // Use this for initialization
        void Start () {
            // Initialize Firebase
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your application class.
                    // Crashlytics will use the DefaultInstance, as well;
                    // this ensures that Crashlytics is initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                    // When this property is set to true, Crashlytics will report all
                    // uncaught exceptions as fatal events. This is the recommended behavior.
                    Crashlytics.ReportUncaughtExceptionsAsFatal = true;
    
                    // Set a flag here for indicating that your project is ready to use Firebase.
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                      "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            });
        }
    
      // Update is called once per frame
      void Update()
        // ...
    }

ขั้นตอนที่ 3 : (Android เท่านั้น) ตั้งค่าสำหรับการอัปโหลดสัญลักษณ์

ขั้นตอนนี้จำเป็นสำหรับแอป Android ที่ใช้ IL2CPP เท่านั้น

  • สำหรับแอป Android ที่ใช้แบ็กเอนด์สคริปต์โมโนของ Unity ขั้นตอนเหล่านี้ไม่จำเป็น

  • สำหรับแอปแพลตฟอร์ม Apple ขั้นตอนเหล่านี้ไม่จำเป็นเนื่องจากปลั๊กอิน Firebase Unity Editor จะกำหนดค่าโปรเจ็กต์ Xcode ให้อัปโหลดสัญลักษณ์โดยอัตโนมัติ

Unity SDK 8.6.1+ ของ Crashlytics มีการรายงานข้อขัดข้องของ NDK โดยอัตโนมัติ ซึ่งช่วยให้ Crashlytics รายงานข้อขัดข้องของ Unity IL2CPP บน Android ได้โดยอัตโนมัติ อย่างไรก็ตาม หากต้องการดูสแต็กเทรซที่เป็นสัญลักษณ์สำหรับการขัดข้องของไลบรารีเนทีฟในแดชบอร์ด Crashlytics คุณต้องอัปโหลดข้อมูลสัญลักษณ์ในขณะสร้างโดยใช้ Firebase CLI

หากต้องการตั้งค่าสำหรับการอัปโหลดสัญลักษณ์ ให้ทำตามคำแนะนำเพื่อ ติดตั้ง Firebase CLI

หากคุณได้ติดตั้ง CLI แล้ว อย่าลืม อัปเดตเป็นเวอร์ชันล่าสุด

ขั้นตอนที่ 4 : สร้างโครงการของคุณและอัปโหลดสัญลักษณ์

iOS+ (แพลตฟอร์มของ Apple)

  1. จากกล่องโต้ตอบ การตั้งค่าการสร้าง ให้ส่งออกโครงการของคุณไปยังพื้นที่ทำงาน Xcode

  2. สร้างแอปของคุณ

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

แอนดรอยด์

  1. จากกล่องโต้ตอบ การตั้งค่าการสร้าง ให้เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:

    • ส่งออกไปยังโครงการ Android Studio เพื่อสร้างโครงการของคุณ หรือ

    • สร้าง APK ของคุณโดยตรงจาก Unity Editor
      ก่อนสร้าง ตรวจสอบให้แน่ใจว่าได้เลือกช่องทำเครื่องหมายสำหรับ สร้าง symbols.zip ในกล่องโต้ตอบ การตั้งค่าการสร้าง

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

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

    • PATH/TO/SYMBOLS : เส้นทางไปยังไฟล์สัญลักษณ์ที่สร้างโดย CLI

      • ส่งออกไปยังโปรเจ็กต์ Android Studio — PATH/TO/SYMBOLS คือ unityLibrary/symbols ซึ่งสร้างขึ้นในรูทโปรเจ็กต์ที่ส่งออกหลังจากที่คุณสร้างแอปผ่าน Gradle หรือ Android Studio

      • สร้าง APK โดยตรงจากภายใน Unity — PATH/TO/SYMBOLS คือเส้นทางของไฟล์สัญลักษณ์ zip ที่สร้างขึ้นในไดเร็กทอรีรากของโปรเจ็กต์เมื่องานสร้างของคุณเสร็จสิ้น (เช่น: myproject/myapp-1.0-v100.symbols.zip )

    ดูตัวเลือกขั้นสูงสำหรับการใช้คำสั่ง Firebase CLI สำหรับการสร้างและอัปโหลดไฟล์สัญลักษณ์

    ธง คำอธิบาย
    --generator=csym

    ใช้ตัวสร้างไฟล์สัญลักษณ์ cSYM แบบดั้งเดิมแทนตัวสร้าง Breakpad เริ่มต้น

    ไม่แนะนำให้ใช้ ขอแนะนำให้ใช้ตัวสร้างไฟล์สัญลักษณ์ Breakpad ที่เป็นค่าเริ่มต้น

    --generator=breakpad

    ใช้ตัวสร้างไฟล์สัญลักษณ์ Breakpad

    โปรดทราบว่าค่าเริ่มต้นสำหรับการสร้างไฟล์สัญลักษณ์คือ Breakpad ใช้แฟล็กนี้เฉพาะเมื่อคุณเพิ่ม symbolGenerator { csym() } ในการกำหนดค่าบิลด์ของคุณ และคุณต้องการแทนที่เพื่อใช้ Breakpad แทน

    --dry-run

    สร้างไฟล์สัญลักษณ์แต่ไม่ได้อัปโหลด

    แฟล็กนี้มีประโยชน์หากคุณต้องการตรวจสอบเนื้อหาของไฟล์ที่ส่ง

    --debug ให้ข้อมูลการดีบักเพิ่มเติม

ขั้นตอนที่ 5 : บังคับให้ทดสอบข้อขัดข้องเพื่อสิ้นสุดการตั้งค่า

หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับการทดสอบการหยุดทำงาน

  1. ค้นหา GameObject ที่มีอยู่ จากนั้นเพิ่มสคริปต์ต่อไปนี้ลงไป สคริปต์นี้จะทำให้การทดสอบหยุดทำงานไม่กี่วินาทีหลังจากที่คุณเรียกใช้แอป

    using System;
    using UnityEngine;
    
    public class CrashlyticsTester : MonoBehaviour {
    
        int updatesBeforeException;
    
        // Use this for initialization
        void Start () {
          updatesBeforeException = 0;
        }
    
        // Update is called once per frame
        void Update()
        {
            // Call the exception-throwing method here so that it's run
            // every frame update
            throwExceptionEvery60Updates();
        }
    
        // A method that tests your Crashlytics implementation by throwing an
        // exception every 60 frame updates. You should see reports in the
        // Firebase console a few minutes after running your app with this method.
        void throwExceptionEvery60Updates()
        {
            if (updatesBeforeException > 0)
            {
                updatesBeforeException--;
            }
            else
            {
                // Set the counter to 60 updates
                updatesBeforeException = 60;
    
                // Throw an exception to test your Crashlytics implementation
                throw new System.Exception("test exception please ignore");
            }
        }
    }
    
  2. สร้างแอปของคุณและอัปโหลดข้อมูลสัญลักษณ์หลังจากสร้างเสร็จ

    • iOS+ : ปลั๊กอิน Firebase Unity Editor จะกำหนดค่าโปรเจ็กต์ Xcode ของคุณโดยอัตโนมัติเพื่ออัปโหลดไฟล์สัญลักษณ์ของคุณ

    • Android : สำหรับแอป Android ที่ใช้ IL2CPP ให้เรียกใช้คำสั่ง Firebase CLI crashlytics:symbols:upload เพื่ออัปโหลดไฟล์สัญลักษณ์ของคุณ

  3. เรียกใช้แอปของคุณ เมื่อแอปของคุณกำลังทำงาน ให้ดูบันทึกอุปกรณ์และรอให้ข้อยกเว้นเรียกใช้จาก CrashlyticsTester

    • iOS+ : ดูบันทึกในบานหน้าต่างด้านล่างของ Xcode

    • Android : ดูบันทึกโดยเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล: adb logcat

  4. ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องในการทดสอบของคุณ

    หากคุณรีเฟรชคอนโซลแล้ว แต่ยังไม่พบการทดสอบข้อขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้งานการบันทึกการแก้ไขจุดบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่

ตัวยึด108


และนั่นแหล่ะ! Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง ไปที่ แดชบอร์ด Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ

ขั้นตอนถัดไป

  • ผสานรวมกับ Google Play เพื่อให้คุณสามารถกรองรายงานข้อขัดข้องของแอป Android ตามแทร็กของ Google Play ได้โดยตรงในแดชบอร์ด Crashlytics สิ่งนี้ทำให้คุณสามารถมุ่งเน้นแดชบอร์ดของคุณไปที่งานสร้างเฉพาะได้ดีขึ้น