Mendapatkan laporan error yang dapat dibaca di dasbor Crashlytics

Secara default, Firebase Crashlytics memproses file debug simbol (dSYM) secara otomatis untuk memberi Anda laporan error yang di-deobfuscate dan dapat dibaca manusia. Biasanya, Anda akan mengonfigurasi perilaku ini selama penyiapan awal Crashlytics di aplikasi Anda, terutama dengan menambahkan skrip pengoperasian yang otomatis mengupload file dSYM selama fase build aplikasi Anda.

Sayangnya, ada beberapa kasus yang dapat menyebabkan upload file dSYM otomatis Anda gagal. Panduan ini berisi beberapa cara untuk memecahkan masalah saat Crashlytics tidak dapat menemukan dSYM aplikasi.

Pastikan Xcode dapat memproses dSYM dan mengupload file secara otomatis

Saat menyiapkan Crashlytics di aplikasi, Anda mengonfigurasi skrip pengoperasian untuk memproses dSYM dan mengupload file secara otomatis.

Pastikan konfigurasi Anda untuk skrip pengoperasian Crashlytics sudah yang terbaru dengan persyaratan baru yang dimulai dengan Xcode 15. Jika konfigurasi Anda bukan yang terbaru, Anda mungkin mendapatkan error berikut:
error: Info.plist Error Unable to process Info.plist at path ....

Secara khusus, Xcode 15 dan yang lebih baru mengharuskan Anda memberikan kumpulan lokasi file yang lebih lengkap. Untuk skrip pengoperasian Crashlytics (firebase-ios-sdk/Crashlytics/run), pastikan Anda memiliki penyiapan berikut:

  1. Klik tab Build Phases, lalu luaskan bagian Run Script.

  2. Di bagian Input Files, pastikan Anda memiliki jalur untuk lokasi file berikut:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Memeriksa apakah Xcode menghasilkan dSYM

Sering kali file dSYM tidak ada karena Xcode tidak menghasilkannya. Jika upload gagal, Crashlytics akan menampilkan pemberitahuan "Missing dSYM" di Firebase console. Jika pemberitahuan ini muncul, periksa terlebih dahulu apakah Xcode menghasilkan dSYM yang benar untuk setiap build:

  1. Buka project di Xcode, lalu pilih file project di Xcode Navigator.

  2. Pilih target build utama Anda.

  3. Buka tab Build Settings target, lalu klik All.

  4. Telusuri debug information format.

  5. Setel Debug Information Format ke DWARF with dSYM File untuk semua jenis build.

  6. Build ulang aplikasi Anda.

Laporan error Anda seharusnya muncul di dasbor Crashlytics. Jika masalah berlanjut atau Anda mengalami error lainnya, coba cari dSYM dan upload ke Crashlytics secara manual.

Menemukan dSYM di mesin lokal

Jalankan perintah berikut untuk menampilkan semua UUID dSYM di mesin Anda, lalu cari dSYM yang tidak ada:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Setelah ditemukan, upload dSYM ke Crashlytics. Jika perintah mdfind tidak menampilkan hasil apa pun, Anda dapat melihat di direktori Products tempat .app berada (secara default, direktori Products berada di Derived Data). Jika aplikasi Anda dirilis ke produksi, Anda juga dapat mencari dSYM-nya di direktori .xcarchive pada disk:

  1. Di Xcode, buka jendela Organizer, lalu pilih aplikasi dari daftar. Xcode menampilkan daftar arsip project Anda.

  2. Control-klik arsip untuk melihatnya di Finder. Control-klik lagi, lalu klik Show Package Contents.

  3. Dalam .xcarchive adalah direktori dSYM yang berisi dSYM yang dihasilkan sebagai bagian dari proses pengarsipan Xcode.

Mengupload dSYM

Crashlytics mendukung beberapa cara untuk mengupload file dSYM Anda, secara otomatis atau secara manual.

(Direkomendasikan) Memproses dSYM dan mengupload file secara otomatis

Saat pertama kali menyiapkan Crashlytics, kemungkinan besar Anda mengonfigurasi perilaku upload otomatis ini untuk aplikasi Anda. Namun, jika upload otomatis gagal, pastikan konfigurasi Anda sudah benar.

Mengupload file dSYM secara manual

Jika upload otomatis gagal, Anda dapat mengupload file dSYM secara manual menggunakan salah satu opsi berikut.

  • Opsi 1: Gunakan opsi "Tarik lalu Lepas" berbasis konsol untuk mengupload file ZIP yang berisi file dSYM Anda (buka tab Firebase console >Crashlytics >dSYM ).

  • Opsi 2: Gunakan skrip upload-symbols yang dapat Anda panggil dari mana pun dalam proses build untuk mengupload file dSYM secara manual. Untuk menjalankan skrip upload-symbols, gunakan salah satu opsi berikut:

    • Opsi A: Sertakan baris berikut dalam proses build Anda:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Opsi B: Jalankan skrip langsung dari terminal Anda:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Untuk catatan penggunaan dan petunjuk tambahan tentang skrip ini, jalankan upload-symbols dengan parameter --help.