การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณด้วย Firebase Crashlytics SDK เพื่อให้คุณรับรายงานข้อขัดข้องที่ครอบคลุมในคอนโซล Firebase
การตั้งค่า Crashlytics ต้องการงานทั้งในคอนโซล Firebase และ IDE ของคุณ (เช่น การเพิ่มไฟล์การกำหนดค่า Firebase และ Crashlytics SDK) ในการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้การทดสอบขัดข้องเพื่อส่งรายงานข้อขัดข้องครั้งแรกไปยัง Firebase
ก่อนจะเริ่ม
หากยังไม่ได้ดำเนินการ ให้ เพิ่ม Firebase ในโครงการ Unity หากคุณไม่มีโปรเจ็กต์ Unity คุณสามารถดาวน์โหลด แอปตัวอย่าง ได้
แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ไม่มีข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase
หากโปรเจ็กต์ Firebase ที่คุณมีอยู่ไม่ได้เปิดใช้งาน Google Analytics คุณสามารถเปิดใช้งาน Google Analytics ได้จาก แท็บ การผสานการ ทำงานใน > การตั้ง ค่าโปรเจ็ กต์ในคอนโซล Firebase
หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ระหว่างขั้นตอนการสร้างโปรเจ็กต์
ขั้นตอนที่ 1 : เพิ่ม Firebase Crashlytics SDK ลงในแอปของคุณ
โปรดทราบว่าเมื่อคุณลงทะเบียนโปรเจ็กต์ Unity กับโปรเจ็กต์ Firebase คุณอาจดาวน์โหลด Firebase Unity SDK และเพิ่มแพ็กเกจ Crashlytics แล้ว
ดาวน์โหลด Firebase Unity SDK จากนั้นเปิดเครื่องรูด SDK ที่ไหนสักแห่งที่สะดวก
Firebase Unity SDK ไม่ใช่เฉพาะแพลตฟอร์ม
ในโครงการ Unity ที่เปิดอยู่ ให้ไปที่ เนื้อหา > นำเข้าแพ็คเกจ > แพ็คเกจที่กำหนดเอง
จาก SDK ที่คลายซิป ให้เลือกนำเข้า Crashlytics SDK (
FirebaseCrashlytics.unitypackage
)คุณสามารถนำเข้า ผลิตภัณฑ์ Firebase ที่รองรับ อื่นๆ ได้เช่นกัน
ในหน้าต่าง Import Unity Package ให้คลิก Import
ขั้นตอนที่ 2 : เริ่มต้น Crashlytics
สร้างสคริปต์ C# ใหม่ จากนั้นเพิ่มลงใน
GameObject
ในฉากเปิดฉากแรกของคุณ แล้วสร้าง
GameObject
ว่างที่ชื่อว่าCrashlyticsInitializer
คลิก เพิ่มส่วนประกอบ ในตัว ตรวจสอบ สำหรับวัตถุใหม่
เลือกสคริปต์
CrashlyticsInit
ของคุณเพื่อเพิ่มลงในวัตถุCrashlyticsInitializer
เริ่มต้น 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
ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าสำหรับการอัพโหลดสัญลักษณ์:
ทำตามคำแนะนำเพื่อ ติดตั้ง Firebase CLI
หากคุณได้ติดตั้ง CLI แล้ว อย่าลืม อัปเดตเป็นเวอร์ชันล่าสุด
(สำหรับแอปที่ใช้ Android API ระดับ 30 ขึ้นไปเท่านั้น) อัปเดตเทมเพลต
AndroidManifest.xml
ของแอปเพื่อปิดใช้งานการติดแท็กตัวชี้:ทำเครื่องหมายที่ช่องสำหรับ การตั้งค่าโปรแกรมเล่น Android > การตั้งค่าการเผยแพร่ > บิลด์ > รายการหลักที่กำหนดเอง
เปิดเทมเพลตรายการซึ่งอยู่ที่
Assets/Plugins/Android/AndroidManifest.xml
เพิ่มแอตทริบิวต์ต่อไปนี้ให้กับแท็กแอปพลิเคชัน:
<application android:allowNativeHeapPointerTagging="false" ... />
ขั้นตอนที่ 4 : สร้างโครงการของคุณและอัปโหลดสัญลักษณ์
iOS+ (แพลตฟอร์ม Apple)
จากกล่องโต้ตอบ การตั้งค่าบิล ด์ ให้ส่งออกโปรเจ็กต์ของคุณไปยังพื้นที่ทำงาน Xcode
สร้างแอปของคุณ
สำหรับแพลตฟอร์ม Apple ปลั๊กอิน Firebase Unity Editor จะกำหนดค่าโปรเจ็กต์ Xcode ของคุณโดยอัตโนมัติเพื่อสร้างและอัปโหลดไฟล์สัญลักษณ์ที่เข้ากันได้กับ Crashlytics ไปยังเซิร์ฟเวอร์ Firebase สำหรับแต่ละบิลด์
Android
จากไดอะล็อก การตั้งค่าบิล ด์ ให้เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:
ส่งออกไปยังโครงการ Android Studio เพื่อสร้างโครงการของคุณ หรือ
สร้าง APK ของคุณโดยตรงจาก Unity Editor
ก่อนสร้าง ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่อง สร้างสัญลักษณ์.zip ในกล่องโต้ตอบ การตั้งค่าการสร้าง
เมื่อบิลด์ของคุณเสร็จสิ้น ให้สร้างไฟล์สัญลักษณ์ที่เข้ากันได้กับ 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
มีสองวิธีในการค้นหา Firebase App ID ของคุณ:
ในไฟล์
google-services.json
ของคุณ App ID ของคุณคือค่าmobilesdk_app_id
หรือในคอนโซล Firebase ให้ไปที่ การตั้งค่าโปรเจ็ กต์ของคุณ เลื่อนลงไปที่การ์ด แอปของคุณ จากนั้นคลิกแอป Firebase ที่ต้องการเพื่อค้นหา ID แอป
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 คุณต้องบังคับให้มีการทดสอบขัดข้อง
ค้นหา
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"); } } }
สร้างแอปของคุณและอัปโหลดข้อมูลสัญลักษณ์หลังจากสร้างเสร็จแล้ว
iOS+ : ปลั๊กอิน Firebase Unity Editor จะกำหนดค่าโปรเจ็กต์ Xcode ของคุณโดยอัตโนมัติเพื่ออัปโหลดไฟล์สัญลักษณ์ของคุณ
Android : สำหรับแอป Android ของคุณที่ใช้ IL2CPP ให้เรียกใช้คำสั่ง Firebase CLI
crashlytics:symbols:upload
เพื่ออัปโหลดไฟล์สัญลักษณ์ของคุณ
เรียกใช้แอปของคุณ เมื่อแอปของคุณทำงาน ให้ดูบันทึกของอุปกรณ์และรอการเรียกใช้ข้อยกเว้นจาก
CrashlyticsTester
iOS+ : ดูบันทึกในบานหน้าต่างด้านล่างของ Xcode
Android : ดูบันทึกโดยเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล:
adb logcat
เมื่อคุณเห็นข้อยกเว้นในบันทึกอุปกรณ์ ให้รีสตาร์ทแอปเพื่อส่งรายงานข้อขัดข้องไปยัง Firebase
ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องของการทดสอบ
หากคุณได้รีเฟรชคอนโซลแล้วและยังไม่เห็นการทดสอบขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้งานการบันทึกการแก้ไขข้อบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่
และนั่นแหล่ะ! Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง ไปที่ แดชบอร์ดของ Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ
ขั้นตอนถัดไป
- ปรับแต่งการตั้งค่ารายงานข้อขัดข้อง ด้วยการเพิ่มการรายงาน บันทึก คีย์ และการติดตามข้อผิดพลาดที่ไม่ร้ายแรง
- ผสานรวมกับ Google Play เพื่อให้คุณสามารถกรองรายงานข้อขัดข้องของแอป Android ตามแทร็ก Google Play ได้โดยตรงในแดชบอร์ดของ Crashlytics ซึ่งจะทำให้คุณสามารถโฟกัสแดชบอร์ดของคุณไปที่บิลด์เฉพาะได้ดีขึ้น