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

ขั้นตอนที่ 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
    using Firebase;
    
    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;
    
                    // 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 ที่ใช้แบ็กเอนด์ Mono scripting ของ Unity คุณไม่จำเป็นต้องทำตามขั้นตอนเหล่านี้

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

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

ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าสำหรับการอัพโหลดสัญลักษณ์:

  1. ทำตามคำแนะนำเพื่อ ติดตั้ง Firebase CLI

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

  2. (สำหรับแอปที่ใช้ Android API ระดับ 30 ขึ้นไปเท่านั้น) อัปเดตเทมเพลต AndroidManifest.xml ของแอปเพื่อปิดใช้งานการติดแท็กตัวชี้:

    1. ทำเครื่องหมายที่ช่องสำหรับ การตั้งค่าโปรแกรมเล่น Android > การตั้งค่าการเผยแพร่ > บิลด์ > รายการหลักที่กำหนดเอง

    2. เปิดเทมเพลตรายการซึ่งอยู่ที่ Assets/Plugins/Android/AndroidManifest.xml

    3. เพิ่มแอตทริบิวต์ต่อไปนี้ในแท็กแอปพลิเคชัน: <application android:allowNativeHeapPointerTagging="false" ... />

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

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

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

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

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

Android

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

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

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

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

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

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

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

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

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

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

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

    ไม่แนะนำให้ใช้ เราขอแนะนำให้ใช้ตัวสร้างไฟล์สัญลักษณ์เบรกแพดเริ่มต้น

    --generator=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 non-fatal errors 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. เมื่อคุณเห็นข้อยกเว้นในบันทึกอุปกรณ์ ให้รีสตาร์ทแอปเพื่อส่งรายงานข้อขัดข้องไปยัง Firebase

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

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


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

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

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