หากแอป Android มีไลบรารีแบบเนทีฟ คุณจะเปิดใช้สแต็กเทรซแบบเต็มและรายงานข้อขัดข้องแบบละเอียดสำหรับโค้ดเนทีฟได้ตั้งแต่ Firebase Crashlytics โดยการอัปเดตเล็กน้อยในการกำหนดค่าบิลด์ของแอป
คู่มือนี้จะอธิบายวิธีกำหนดค่าการรายงานข้อขัดข้องด้วย Firebase Crashlytics SDK สำหรับ NDK
หากกำลังมองหาวิธีเริ่มต้นใช้งาน Crashlytics ในโปรเจ็กต์ Unity โปรดดูคู่มือเริ่มต้นใช้งาน Unity
ก่อนเริ่มต้น
เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้ดำเนินการ หากไม่มีแอป Android คุณสามารถดาวน์โหลดแอปตัวอย่าง
แนะนํา: หากต้องการรับบันทึกเบรดครัมบ์โดยอัตโนมัติเพื่อทำความเข้าใจการดําเนินการของผู้ใช้ที่ทําให้เกิดข้อขัดข้อง เหตุการณ์ที่ไม่ใช่ข้อขัดข้องร้ายแรง หรือ ANR คุณจะต้องเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase
หากโปรเจ็กต์ Firebase ที่มีอยู่ไม่ได้เปิดใช้ Google Analytics ให้เปิดใช้ Google Analytics จากแท็บการผสานรวมของ
ในคอนโซล > การตั้งค่าโปรเจ็กต์Firebase หากจะสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ในระหว่างขั้นตอนการสร้างโปรเจ็กต์
ตรวจสอบว่าแอปของคุณมีเวอร์ชันที่ขั้นต่ำตามที่กำหนดต่อไปนี้
- Gradle 8.0
- ปลั๊กอิน Android Gradle 8.1.0
- ปลั๊กอิน Gradle ของบริการของ Google 4.4.1
ขั้นตอนที่ 1: เพิ่ม Crashlytics SDK สําหรับ NDK ลงในแอป
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น<project>/<app-module>/build.gradle.kts
หรือ <project>/<app-module>/build.gradle
) ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี Crashlytics NDK สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี
เราขอแนะนําให้เปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สําหรับ Google Analytics ลงในแอปเพื่อให้ได้รับประสบการณ์การใช้งาน Crashlytics ที่ดีที่สุด
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.9.0")) // 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 แต่ละเวอร์ชันในบรรทัดของ Dependency
โปรดทราบว่าหากคุณใช้ไลบรารี 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:19.4.0") implementation("com.google.firebase:firebase-analytics:22.2.0") }
ขั้นตอนที่ 2: เพิ่มCrashlyticsปลั๊กอิน Gradle ลงในแอป
ในไฟล์ Gradle ระดับรูท (ระดับโปรเจ็กต์) (
<project>/build.gradle.kts
หรือ<project>/build.gradle
) ให้เพิ่มCrashlyticsปลั๊กอิน Gradle ลงในบล็อกplugins
ดังนี้plugins { // Make sure that you have the AGP plugin 8.1+ dependency id("com.android.application") version "8.1.4" apply false // ... // Make sure that you have the Google services Gradle plugin 4.4.1+ dependency id("com.google.gms.google-services") version "4.4.2" apply false // Add the dependency for the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") version "3.0.3" apply false }
plugins { // Make sure that you have the AGP plugin 8.1+ dependency id 'com.android.application' version '8.1.4' apply false // ... // Make sure that you have the Google services Gradle plugin 4.4.1+ dependency id 'com.google.gms.google-services' version '4.4.2' apply false // Add the dependency for the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' version '3.0.3' apply false }
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) ให้เพิ่มปลั๊กอิน Crashlytics Gradle ดังนี้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") }
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
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 } } } }
// ... 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: ตั้งค่าการอัปโหลดสัญลักษณ์แบบเนทีฟโดยอัตโนมัติ
Crashlytics จำเป็นต้องทราบเกี่ยวกับสัญลักษณ์ในไบนารีแบบเนทีฟจึงจะสร้างสแต็กเทรซที่อ่านได้จากการขัดข้องของ NDK ได้ Crashlyticsปลั๊กอิน Gradle
มีuploadCrashlyticsSymbolFileBUILD_VARIANT
งานที่จะทําให้กระบวนการนี้เป็นแบบอัตโนมัติ
โปรดตรวจสอบว่าได้ตั้งค่า
nativeSymbolUploadEnabled
เป็นtrue
ในไฟล์ Gradle ของโมดูล (ระดับแอป) เพื่อให้เข้าถึงงานสำหรับการอัปโหลดสัญลักษณ์อัตโนมัติได้หากต้องการให้ชื่อเมธอดปรากฏในสแต็กเทรซ คุณต้องเรียกใช้
uploadCrashlyticsSymbolFileBUILD_VARIANT
งานอย่างชัดเจนหลังจากการบิลด์แต่ละครั้งของไลบรารี NDK เช่น>./gradlew app:assemble
BUILD_VARIANT \ app:uploadCrashlyticsSymbolFileBUILD_VARIANT ทั้ง Crashlytics SDK สำหรับ NDK และปลั๊กอิน Crashlytics Gradle ขึ้นอยู่กับการมีรหัสบิลด์ GNU ภายในออบเจ็กต์ที่แชร์แบบเนทีฟ
คุณสามารถยืนยันการมีรหัสนี้ได้โดยการรัน
ในไบนารีแต่ละรายการ หากไม่มีรหัสบิลด์ ให้เพิ่มreadelf -n
ลงใน Flag ของระบบบิลด์เพื่อแก้ไขปัญหา-Wl,--build-id
ขั้นตอนที่ 5: บังคับให้ทดสอบข้อขัดข้องเพื่อตั้งค่าให้เสร็จ
หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับให้เกิดการทดสอบข้อขัดข้อง
เพิ่มโค้ดลงในแอปที่คุณสามารถใช้เพื่อบังคับให้เกิดการทดสอบข้อขัดข้อง
คุณสามารถใช้โค้ดต่อไปนี้ใน
MainActivity
ของแอปเพื่อเพิ่มปุ่มลงในแอป ซึ่งเมื่อกดแล้วจะทำให้แอปขัดข้อง ปุ่มมีป้ายกำกับว่า "ทดสอบข้อขัดข้อง"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))
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 เพื่อดูข้อขัดข้องในเวอร์ชันทดสอบ
หากรีเฟรชคอนโซลแล้ว แต่ยังไม่เห็นการทดสอบขัดข้องหลังจากผ่านไป 5 นาที ให้เปิดใช้การบันทึกการแก้ไขข้อบกพร่องเพื่อดูว่าแอปส่งรายงานข้อขัดข้องหรือไม่
เท่านี้ก็เรียบร้อย ตอนนี้ 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 หรือไลบรารีเนทีฟสร้างขึ้นในโมดูลไลบรารี/ฟีเจอร์หรือจัดหาโดยบุคคลที่สาม คุณอาจต้องระบุเส้นทางไปยังไลบรารีที่ยังไม่ได้ Strip อย่างชัดเจน โดยสามารถเพิ่มพร็อพเพอร์ตี้ unstrippedNativeLibsDir
ภายในส่วนขยาย Crashlytics ในไฟล์บิลด์ Gradle
ตรวจสอบว่าคุณได้ทํางานเริ่มต้นต่อไปนี้จากเวิร์กโฟลว์หลักในหน้านี้ก่อนหน้านี้แล้ว
เพิ่มข้อมูลต่อไปนี้ลงในไฟล์ Gradle ระดับโมดูล (ระดับแอป) (มักจะเป็น
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) เพื่อให้งานการอัปโหลดสัญลักษณ์อัตโนมัติค้นหาข้อมูลสัญลักษณ์ได้import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension // ... android { // ... buildTypes { release { configure<CrashlyticsExtension> { nativeSymbolUploadEnabled = true unstrippedNativeLibsDir = file("
PATH/TO/UNSTRIPPED/DIRECTORY ") } } } }// ... 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ปลั๊กอิน Gradle v3.0.0) รวมไดเรกทอรีหลายรายการในผลิตภัณฑ์แต่ละรายการและแต่ละรุ่นของบิลด์
ดูตัวอย่างที่มีไดเรกทอรีหลายรายการ
buildTypes { release { configure<CrashlyticsExtension> { nativeSymbolUploadEnabled = true unstrippedNativeLibsDir = file("
MY/NATIVE/LIBS ") } } productFlavors { flavorDimensions += "feature" create("basic") { dimension = "feature" // ... } create("featureX") { dimension = "feature" configure<CrashlyticsExtension> { unstrippedNativeLibsDir = file("MY/FEATURE_X/LIBS ") } } } }งาน
uploadCrashlyticsSymbolFilesBasicRelease
จะอัปโหลดเฉพาะสัญลักษณ์ในMY/NATIVE/LIBS
แต่uploadCrashlyticsSymbolFilesFeatureXRelease
จะอัปโหลดสัญลักษณ์ทั้งในMY/NATIVE/LIBS
และMY/FEATURE_X/LIBS
สุดท้าย ให้บังคับให้เกิดการขัดข้องในการทดสอบเพื่อตั้งค่าCrashlyticsให้เสร็จสมบูรณ์และดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase
ตัวเลือก: อัปโหลดสัญลักษณ์สำหรับบิลด์ที่ไม่ใช่ Gradle หรือไลบรารีแบบเนทีฟที่ไม่สามารถเข้าถึงได้
ตัวเลือกนี้มีประโยชน์ในสถานการณ์ต่อไปนี้
หากคุณใช้กระบวนการสร้างที่ไม่ใช่ Gradle
หากมีการจัดเตรียมไลบรารีแบบเนทีฟที่ไม่ได้ลบข้อมูลบางส่วนออกให้คุณในลักษณะที่เข้าถึงไม่ได้ระหว่างการสร้าง Gradle
ดูวิธีการสำหรับตัวเลือกนี้
ตัวเลือกนี้กำหนดให้คุณเรียกใช้คำสั่ง Firebase CLI เมื่อสร้างบิลด์รุ่นหรือบิลด์ที่ต้องการดูสแต็กเทรซที่แปลงเป็นสัญลักษณ์ในคอนโซล Firebase
ตรวจสอบว่าคุณได้ทํางานเริ่มต้นต่อไปนี้จากเวิร์กโฟลว์หลักในหน้านี้ก่อนหน้านี้แล้ว
โปรดทราบว่าเมื่อใช้ตัวเลือกนี้ คุณไม่จําเป็นต้องเพิ่มส่วนขยาย
firebaseCrashlytics
หรือตั้งค่าการอัปโหลดสัญลักษณ์อัตโนมัติ เนื่องจากคุณจะใช้ Firebase CLI (ขั้นตอนถัดไปด้านล่าง) เพื่อสร้างและอัปโหลดไฟล์สัญลักษณ์แทนตั้งค่าสภาพแวดล้อมและโปรเจ็กต์สำหรับการอัปโหลดสัญลักษณ์
ทําตามวิธีการเพื่อติดตั้ง Firebase CLI
หากคุณติดตั้ง CLI ไว้แล้ว โปรดอัปเดตเป็นเวอร์ชันล่าสุด
(สำหรับแอปที่ใช้ Android API ระดับ 30 ขึ้นไปเท่านั้น) อัปเดตเทมเพลตของ
AndroidManifest.xml
แอปเพื่อปิดใช้การติดแท็กเคอร์เซอร์ โดยทำดังนี้เลือกช่องการตั้งค่าโปรแกรมเล่น Android > การตั้งค่าการเผยแพร่ > บิลด์ > ไฟล์ Manifest หลักที่กำหนดเอง
เปิดเทมเพลตไฟล์ Manifest ที่
Assets/Plugins/Android/AndroidManifest.xml
เพิ่มแอตทริบิวต์ต่อไปนี้ลงในแท็กแอปพลิเคชัน
<application android:allowNativeHeapPointerTagging="false" ... />
สร้างโปรเจ็กต์
อัปโหลดข้อมูลสัญลักษณ์
เมื่อบิลด์เสร็จแล้ว ให้สร้างไฟล์สัญลักษณ์ที่เข้ากันได้กับ Crashlytics และอัปโหลดไปยังเซิร์ฟเวอร์ Firebase โดยเรียกใช้คำสั่ง CLI ต่อไปนี้Firebase
firebase crashlytics:symbols:upload --app=
FIREBASE_APP_ID PATH/TO/SYMBOLS FIREBASE_APP_ID: รหัสแอป Firebase สำหรับ Android (ไม่ใช่ชื่อแพ็กเกจ)
ตัวอย่างรหัสแอป Firebase สำหรับ Android:1:567383003300:android:17104a2ced0c9b9b
หากต้องการค้นหารหัสแอป Firebase
คุณดูรหัสแอป Firebase ได้ 2 วิธีดังนี้
ในไฟล์
google-services.json
รหัสแอปคือค่าmobilesdk_app_id
หรือในคอนโซล Firebase ให้ไปที่การตั้งค่าโปรเจ็กต์ เลื่อนลงไปที่การ์ดแอปของคุณ แล้วคลิกแอป Firebase ที่ต้องการเพื่อค้นหารหัสแอป
PATH/TO/SYMBOLS: เส้นทางไปยังไฟล์สัญลักษณ์ที่ CLI สร้างขึ้น
ส่งออกไปยังโปรเจ็กต์ Android Studio โดยPATH/TO/SYMBOLSอาจเป็นไดเรกทอรีใดก็ได้ Firebase CLI จะค้นหาไลบรารีที่มาพร้อมเครื่องที่มีนามสกุล
.so
ในไดเรกทอรีที่ระบุซ้ำบิลด์ APK จากภายใน Unity โดยตรง PATH/TO/SYMBOLS คือเส้นทางของไฟล์สัญลักษณ์ที่บีบอัดซึ่งสร้างขึ้นในไดเรกทอรีรูทของโปรเจ็กต์เมื่อบิลด์เสร็จสิ้น (เช่น
)myproject/myapp-1.0-v100.symbols.zip
ดูตัวเลือกขั้นสูงสำหรับการใช้ Firebase คำสั่ง CLI สำหรับการสร้างและอัปโหลดไฟล์สัญลักษณ์
แจ้ง คำอธิบาย --generator=csym
ใช้เครื่องมือสร้างไฟล์สัญลักษณ์ cSYM แบบเดิมแทนเครื่องมือสร้าง Breakpad เริ่มต้น
ไม่แนะนําให้ใช้งาน เราขอแนะนำให้ใช้เครื่องมือสร้างไฟล์สัญลักษณ์ Breakpad เริ่มต้น
--generator=breakpad
ใช้เครื่องมือสร้างไฟล์สัญลักษณ์ Breakpad
โปรดทราบว่าค่าเริ่มต้นในการสร้างไฟล์สัญลักษณ์คือ Breakpad ใช้ Flag นี้เฉพาะในกรณีที่คุณเพิ่ม
ในการกำหนดค่าบิลด์และต้องการลบล้างเพื่อใช้ Breakpad แทนsymbolGenerator { csym() }
--dry-run
สร้างไฟล์สัญลักษณ์แต่ไม่อัปโหลด
แฟล็กนี้มีประโยชน์หากคุณต้องการตรวจสอบเนื้อหาของไฟล์ที่ส่ง
--debug
ให้ข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่อง สุดท้าย ให้บังคับให้เกิดการขัดข้องในการทดสอบเพื่อตั้งค่าCrashlyticsให้เสร็จสมบูรณ์และดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase
หลังจากสร้างแอปเพื่อบังคับให้เกิดการขัดข้องแล้ว อย่าลืมเรียกใช้คำสั่ง Firebase CLI
crashlytics:symbols:upload
เพื่ออัปโหลดไฟล์สัญลักษณ์