หากแอป Android ของคุณมี ไลบรารีเนทีฟ คุณสามารถเปิดใช้การติดตามสแต็กแบบเต็มและรายงานข้อขัดข้องโดยละเอียดสำหรับโค้ดเนทีฟของคุณจาก Firebase Crashlytics พร้อมการอัปเดตเล็กน้อยสำหรับการกำหนดค่าบิลด์ของแอป
คู่มือนี้อธิบายวิธีกำหนดค่าการรายงานข้อขัดข้องด้วย Firebase Crashlytics SDK สำหรับ NDK
หากคุณกำลังมองหาวิธีเริ่มต้นใช้งาน Crashlytics ในโปรเจ็กต์ Unity โปรดดู คู่มือเริ่มต้นใช้งาน Unity
ก่อนที่คุณจะเริ่มต้น
หากคุณยังไม่ได้ ดำเนินการ ให้เพิ่ม Firebase ในโครงการ Android ของคุณ หากคุณไม่มีแอป Android คุณสามารถดาวน์โหลด แอปตัวอย่างได้
แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ปราศจากข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase
หากโปรเจ็กต์ Firebase ที่มีอยู่ของคุณไม่ได้เปิดใช้งาน Google Analytics คุณสามารถเปิดใช้งาน Google Analytics จาก แท็บ การผสานรวม ของ > การตั้งค่าโปรเจ็กต์ ในคอนโซล Firebase
หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ระหว่างเวิร์กโฟลว์การสร้างโปรเจ็กต์
ขั้นตอนที่ 1 : เพิ่ม Crashlytics SDK สำหรับ NDK ลงในแอปของคุณ
ใน ไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ<project>/<app-module>/build.gradle.kts
หรือ <project>/<app-module>/build.gradle
) ให้เพิ่มการอ้างอิงสำหรับ Crashlytics NDK ห้องสมุด Android ขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารีเพื่อประสบการณ์ที่ดีที่สุดกับ Crashlytics เราขอแนะนำ ให้เปิดใช้ Google Analytics ในโครงการ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependencies for the Crashlytics NDK and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk") implementation("com.google.firebase:firebase-analytics-ktx") }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุแต่ละเวอร์ชันของไลบรารี Firebase ในบรรทัดอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอป เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งทำให้แน่ใจว่าเวอร์ชันทั้งหมดเข้ากันได้
dependencies { // Add the dependencies for the Crashlytics NDK and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk:18.4.3") implementation("com.google.firebase:firebase-analytics-ktx:21.3.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependencies for the Crashlytics NDK and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk") implementation("com.google.firebase:firebase-analytics") }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุแต่ละเวอร์ชันของไลบรารี Firebase ในบรรทัดอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอป เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งทำให้แน่ใจว่าเวอร์ชันทั้งหมดเข้ากันได้
dependencies { // Add the dependencies for the Crashlytics NDK and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk:18.4.3") implementation("com.google.firebase:firebase-analytics:21.3.0") }
ขั้นตอนที่ 2 : เพิ่มปลั๊กอิน Crashlytics Gradle ลงในแอปของคุณ
ในไฟล์ Gradle ระดับรูท (ระดับโปรเจ็กต์) (
<project>/build.gradle.kts
หรือ<project>/build.gradle
) ให้เพิ่มปลั๊กอิน Crashlytics Gradle ลงในบล็อกplugins
:Kotlin
plugins { id("com.android.application") version "7.2.0" apply false // ... // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.3.15" apply false // Add the dependency for the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") version "2.9.9" apply false }
Groovy
plugins { id 'com.android.application' version '7.2.0' apply false // ... // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.3.15' apply false // Add the dependency for the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' version '2.9.9' apply false }
ในไฟล์ Gradle ของ โมดูล (ระดับแอป) (โดยปกติคือ
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) ให้เพิ่มปลั๊กอิน Crashlytics Gradle:Kotlin
plugins { id("com.android.application") // ... // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") }
Groovy
plugins { id 'com.android.application' // ... // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' }
ขั้นตอนที่ 3 : เพิ่มส่วนขยาย Crashlytics ให้กับงานสร้างของคุณ
ในไฟล์ Gradle ของ โมดูล (ระดับแอป) (โดยปกติคือ <project>/<app-module>/build.gradle.kts
หรือ <project>/<app-module>/build.gradle
) ให้กำหนดค่าส่วนขยาย Crashlytics
Kotlin
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension // ... android { // ... buildTypes { getByName("release") { // Add this extension configure<CrashlyticsExtension> { // Enable processing and uploading of native symbols to Firebase servers. // By default, this is disabled to improve build speeds. // This flag must be enabled to see properly-symbolicated native // stack traces in the Crashlytics dashboard. nativeSymbolUploadEnabled = true } } } }
Groovy
// ... android { // ... buildTypes { release { // Add this extension firebaseCrashlytics { // Enable processing and uploading of native symbols to Firebase servers. // By default, this is disabled to improve build speeds. // This flag must be enabled to see properly-symbolicated native // stack traces in the Crashlytics dashboard. nativeSymbolUploadEnabled true } } } }
ขั้นตอนที่ 4 : ตั้งค่าการอัพโหลดอัตโนมัติของสัญลักษณ์เนทีฟ
ในการสร้างสแต็กเทรซที่อ่านได้จากการแครชของ NDK Crashlytics จำเป็นต้องทราบเกี่ยวกับสัญลักษณ์ในไบนารีดั้งเดิมของคุณ ปลั๊กอิน Crashlytics Gradle รวมงาน uploadCrashlyticsSymbolFile BUILD_VARIANT
เพื่อทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติ
เพื่อให้คุณสามารถเข้าถึงงานสำหรับการอัปโหลดสัญลักษณ์อัตโนมัติ ตรวจสอบให้แน่ใจว่าได้ตั้งค่า
nativeSymbolUploadEnabled
เป็นtrue
ในไฟล์ Gradle โมดูลของคุณ (ระดับแอป)เพื่อให้ชื่อเมธอดปรากฏในสแต็กเทรซของคุณ คุณต้องเรียกใช้งาน
uploadCrashlyticsSymbolFile BUILD_VARIANT
หลังจากแต่ละบิลด์ของไลบรารี NDK ของคุณอย่างชัดเจน ตัวอย่างเช่น:>./gradlew app:assembleBUILD_VARIANT\ app:uploadCrashlyticsSymbolFileBUILD_VARIANT
ทั้ง Crashlytics SDK สำหรับ NDK และปลั๊กอิน Crashlytics Gradle ขึ้นอยู่กับการมีอยู่ของ ID บิลด์ GNU ภายในออบเจกต์ที่ใช้ร่วมกันแบบเนทีฟ
คุณสามารถตรวจสอบการมีอยู่ของ ID นี้ได้โดยเรียกใช้
readelf -n
ในแต่ละไบนารี หากไม่มี ID บิลด์ ให้เพิ่ม-Wl,--build-id
ให้กับแฟล็กของระบบบิลด์ของคุณเพื่อแก้ไขปัญหา
ขั้นตอนที่ 5 : บังคับให้ทดสอบข้อขัดข้องเพื่อสิ้นสุดการตั้งค่า
หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับการทดสอบการหยุดทำงาน
เพิ่มโค้ดในแอปของคุณเพื่อบังคับให้ทดสอบข้อขัดข้อง
คุณสามารถใช้รหัสต่อไปนี้ใน
MainActivity
ของแอปเพื่อเพิ่มปุ่มลงในแอปของคุณ ซึ่งเมื่อกดแล้วจะทำให้เกิดข้อขัดข้อง ปุ่มนี้มีชื่อว่า "Test Crash"Kotlin+KTX
val crashButton = Button(this) crashButton.text = "Test Crash" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
Java
Button crashButton = new Button(this); crashButton.setText("Test Crash"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
สร้างและเรียกใช้แอปของคุณ
บังคับให้ทดสอบข้อขัดข้องเพื่อส่งรายงานข้อขัดข้องแรกของแอปของคุณ:
เปิดแอปของคุณจากอุปกรณ์ทดสอบหรือโปรแกรมจำลอง
ในแอปของคุณ ให้กดปุ่ม "ทดสอบการขัดข้อง" ที่คุณเพิ่มโดยใช้โค้ดด้านบน
หลังจากแอปขัดข้อง ให้รีสตาร์ทเพื่อให้แอปส่งรายงานข้อขัดข้องไปยัง Firebase ได้
ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องในการทดสอบของคุณ
หากคุณรีเฟรชคอนโซลแล้ว แต่ยังไม่พบการทดสอบข้อขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้งานการบันทึกการแก้ไขจุดบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่
และนั่นแหล่ะ! ขณะนี้ Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง และคุณสามารถดูและตรวจสอบรายงานและสถิติข้อขัดข้องได้ในแดชบอร์ดของ Crashlytics
ขั้นตอนถัดไป
(แนะนำ) รับความช่วยเหลือในการแก้ไขข้อขัดข้องที่เกิดจากข้อผิดพลาดของหน่วยความจำภายในโดย รวบรวมรายงาน GWP-ASan ข้อผิดพลาดเกี่ยวกับหน่วยความจำเหล่านี้อาจเชื่อมโยงกับความเสียหายของหน่วยความจำภายในแอปของคุณ ซึ่งเป็นสาเหตุหลักของช่องโหว่ด้านความปลอดภัยของแอป หากต้องการใช้ประโยชน์จากคุณลักษณะการแก้ไขข้อบกพร่องนี้ ตรวจสอบให้แน่ใจว่าแอปของคุณ เปิดใช้งาน GWP-ASan อย่างชัดเจน และใช้ Crashlytics SDK ล่าสุดสำหรับ NDK (v18.3.6+ หรือ Firebase BoM v31.3.0+)
ปรับแต่งการตั้งค่ารายงานข้อขัดข้องของคุณ โดยเพิ่มการรายงานแบบเลือกรับ บันทึก คีย์ และการติดตามข้อผิดพลาดที่ไม่ร้ายแรง
ผสานรวมกับ Google Play เพื่อให้คุณสามารถกรองรายงานข้อขัดข้องของแอป Android ตามแทร็กของ Google Play ได้โดยตรงในแดชบอร์ด Crashlytics สิ่งนี้ทำให้คุณสามารถมุ่งเน้นแดชบอร์ดของคุณไปที่งานสร้างเฉพาะได้ดีขึ้น
การแก้ไขปัญหา
หากคุณเห็นสแต็กเทรซที่แตกต่างกันในคอนโซล Firebase และใน logcat โปรดดู คู่มือการแก้ไขปัญหา
ตัวเลือกอื่นสำหรับการอัปโหลดสัญลักษณ์
เวิร์กโฟลว์หลักในหน้านี้ด้านบนใช้ได้กับงานสร้าง Gradle มาตรฐาน อย่างไรก็ตาม แอปบางตัวใช้การกำหนดค่าหรือเครื่องมืออื่น (เช่น กระบวนการสร้างอื่นที่ไม่ใช่ Gradle) ในสถานการณ์เหล่านี้ ตัวเลือกต่อไปนี้อาจมีประโยชน์สำหรับการอัปโหลดสัญลักษณ์ให้สำเร็จ
ตัวเลือก : อัปโหลดสัญลักษณ์สำหรับโมดูลไลบรารีและการพึ่งพาภายนอก
ตัวเลือกนี้มีประโยชน์ในสถานการณ์ต่อไปนี้:
- หากคุณใช้กระบวนการสร้าง NDK แบบกำหนดเองภายใน Gradle
- หากไลบรารีเนทีฟของคุณสร้างขึ้นในไลบรารี/โมดูลคุณลักษณะหรือให้บริการโดยบุคคลที่สาม
- หาก งานอัปโหลดสัญลักษณ์อัตโนมัติ ล้มเหลวหรือคุณเห็นข้อขัดข้องที่ไม่มีสัญลักษณ์ในแดชบอร์ด
งานอัปโหลดสัญลักษณ์ Crashlytics มาตรฐานจะถือว่าคุณกำลังสร้างไลบรารีเนทีฟโดยเป็นส่วนหนึ่งของโครงสร้าง Gradle ของโมดูลแอป โดยใช้เครื่องมือสร้าง NDK มาตรฐาน เช่น CMake
อย่างไรก็ตาม หากคุณใช้กระบวนการสร้าง NDK แบบกำหนดเองภายใน Gradle หรือไลบรารีเนทีฟของคุณสร้างขึ้นในไลบรารี/ฟีเจอร์โมดูลหรือให้บริการโดยบุคคลที่สาม คุณอาจต้องระบุพาธไปยังไลบรารีที่ไม่ได้สตริปของคุณอย่างชัดเจน ในการทำเช่นนี้ คุณสามารถเพิ่มคุณสมบัติ unstrippedNativeLibsDir
ภายในส่วนขยาย Crashlytics ในไฟล์บิลด์ Gradle ของคุณ
ตรวจสอบให้แน่ใจว่าคุณได้ทำงานเริ่มต้นต่อไปนี้จากเวิร์กโฟลว์หลักก่อนหน้านี้ในหน้านี้เสร็จแล้ว:
เพื่อให้งานอัปโหลดสัญลักษณ์อัตโนมัติสามารถค้นหาข้อมูลสัญลักษณ์ของคุณได้ ให้เพิ่มสิ่งต่อไปนี้ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
):Kotlin
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension // ... android { // ... buildTypes { release { configure
{ nativeSymbolUploadEnabled = true unstrippedNativeLibsDir = file("PATH/TO/UNSTRIPPED/DIRECTORY") } } } } Groovy
// ... android { // ... buildTypes { release { firebaseCrashlytics { nativeSymbolUploadEnabled true unstrippedNativeLibsDir file("PATH/TO/UNSTRIPPED/DIRECTORY") } } } }
ปลั๊กอิน Crashlytics จะค้นหาซ้ำในไดเร็กทอรีที่ระบุสำหรับไลบรารีเนทีฟที่มีนามสกุล .
.so
จากนั้น Crashlytics จะแยกสัญลักษณ์การดีบักออกจากไลบรารีดังกล่าวทั้งหมดและอัปโหลดไปยังเซิร์ฟเวอร์ Firebaseต่อไปนี้คือสิ่งที่คุณสามารถระบุในคุณสมบัติ
unstrippedNativeLibsDir
:อาร์กิวเมนต์ใดๆ ที่อนุญาตสำหรับ
org.gradle.api.Project#files(Object...)
รวมถึง:java.lang.String
,java.io.File
หรือorg.gradle.api.file.FileCollection
หลายไดเร็กทอรีสำหรับการสร้างรสชาติเดียวโดยการจัดเตรียมรายการหรืออินสแตนซ์
FileCollection
สุดท้าย บังคับการทดสอบข้อขัดข้อง เพื่อตั้งค่า Crashlytics ให้เสร็จสิ้น และดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase
ตัวเลือก : อัปโหลดสัญลักษณ์สำหรับรุ่นที่ไม่ใช่ Gradle หรือไลบรารี่เนทีฟที่ไม่สามารถเข้าถึงได้
ตัวเลือกนี้มีประโยชน์ในสถานการณ์ต่อไปนี้:
หากคุณใช้กระบวนการสร้างอื่นที่ไม่ใช่ Gradle
หากไลบรารีเนทีฟที่ไม่ได้สตริปมีไว้ให้คุณในลักษณะที่ไม่สามารถเข้าถึงได้ระหว่างการสร้าง Gradle
ตัวเลือกนี้กำหนดให้คุณเรียกใช้คำสั่ง Firebase CLI เมื่อคุณสร้างรุ่นวางจำหน่ายหรือรุ่นใดๆ ที่คุณต้องการดูสแต็กเทรซที่เป็นสัญลักษณ์ในคอนโซล Firebase
ตรวจสอบให้แน่ใจว่าคุณได้ทำงานเริ่มต้นต่อไปนี้จากเวิร์กโฟลว์หลักก่อนหน้านี้ในหน้านี้เสร็จแล้ว:
โปรดทราบว่าด้วยตัวเลือกนี้ คุณไม่จำเป็นต้องเพิ่มส่วนขยาย
firebaseCrashlytics
หรือตั้งค่าการอัปโหลดสัญลักษณ์อัตโนมัติ เพราะคุณจะใช้ Firebase CLI แทน (ขั้นตอนถัดไปด้านล่าง) เพื่อสร้างและอัปโหลดไฟล์สัญลักษณ์ของคุณตั้งค่าสภาพแวดล้อมและโครงการของคุณสำหรับการอัปโหลดสัญลักษณ์:
ทำตามคำแนะนำเพื่อ ติดตั้ง Firebase CLI
หากคุณได้ติดตั้ง CLI แล้ว อย่าลืม อัปเดตเป็นเวอร์ชันล่าสุด
(สำหรับแอปที่ใช้ Android API ระดับ 30+ เท่านั้น) อัปเดตเทมเพลต
AndroidManifest.xml
ของแอปเพื่อปิดใช้งานการแท็กตัวชี้:ทำเครื่องหมายที่ช่องสำหรับ Android Player Settings > Publishing Settings > Build > Custom Main Manifest
เปิดเทมเพลตรายการที่
Assets/Plugins/Android/AndroidManifest.xml
เพิ่มแอตทริบิวต์ต่อไปนี้ในแท็กแอปพลิเคชัน:
<application android:allowNativeHeapPointerTagging="false" ... />
สร้างโครงการของคุณ
อัปโหลดข้อมูลสัญลักษณ์ของคุณ
เมื่อสร้างเสร็จแล้ว ให้สร้างไฟล์สัญลักษณ์ที่เข้ากันได้กับ 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
มีสองวิธีในการค้นหารหัสแอป Firebase ของคุณ:
ในไฟล์
google-services.json
รหัสแอปของคุณคือค่าmobilesdk_app_id
หรือในคอนโซล Firebase ให้ไปที่ การตั้งค่าโครงการ เลื่อนลงไปที่การ์ด แอปของคุณ จากนั้นคลิกแอป Firebase ที่ต้องการเพื่อค้นหา ID แอป
PATH/TO/SYMBOLS : เส้นทางไปยังไฟล์สัญลักษณ์ที่สร้างโดย CLI
ส่งออกไปยังโครงการ Android Studio — PATH/TO/SYMBOLS สามารถเป็นไดเร็กทอรีใดก็ได้ Firebase CLI จะค้นหาซ้ำในไดเร็กทอรีที่ระบุสำหรับไลบรารีเนทีฟที่มีนามสกุล .
.so
สร้าง 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
ให้ข้อมูลการดีบักเพิ่มเติม สุดท้าย บังคับการทดสอบข้อขัดข้อง เพื่อตั้งค่า Crashlytics ให้เสร็จสิ้น และดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase
หลังจากที่คุณสร้างแอปโดยเป็นส่วนหนึ่งของการบังคับใช้ข้อขัดข้อง อย่าลืมเรียกใช้คำสั่ง Firebase CLI
crashlytics:symbols:upload
เพื่ออัปโหลดไฟล์สัญลักษณ์ของคุณ