Menyertakan simbol native dalam build rilis

Secara default, library kode native dihapus dalam build rilis aplikasi Anda. Penghapusan ini terdiri dari penghapusan tabel simbol dan informasi proses debug yang terdapat dalam library native apa pun yang digunakan oleh aplikasi Anda. Menghapus library kode native akan menghasilkan penghematan ukuran yang signifikan; namun, Anda tidak dapat mendiagnosis error di Konsol Google Play karena informasi yang hilang (seperti nama class dan fungsi). Untuk men-debug error, Anda harus menyertakan file simbol debug dengan aplikasi di Konsol Play.

Mengupload file simbol

Konsol Google Play melaporkan error native di bagian Android vitals. Dengan beberapa langkah, Anda dapat membuat dan mengupload file simbol debug native untuk aplikasi Anda. File ini memungkinkan pelacakan tumpukan error native tersimbolkan (yang mencakup nama fungsi dan class) di Android vitals untuk membantu Anda men-debug aplikasi dalam produksi. Langkah-langkah ini bervariasi bergantung pada versi plugin Android Gradle yang digunakan dalam project Anda dan apakah Anda menggunakan Android App Bundle (direkomendasikan) atau APK.

Versi Plugin Android Gradle: 4.1 atau yang lebih baru

Jika project Anda mem-build Android App Bundle (AAB), Anda dapat mengonfigurasi build untuk secara otomatis menyertakan file simbol debug native di AAB sehingga diupload ke Konsol Play saat Anda memublikasikan aplikasi. Untuk menyertakan file ini dalam build rilis, tambahkan kode berikut ke file build.gradle.kts aplikasi Anda:

android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }

Pilih level simbol debug berikut ini:

  • Gunakan SYMBOL_TABLE untuk mendapatkan nama fungsi di pelacakan tumpukan yang disimbolkan Konsol Play. Level ini mendukung tombstone.
  • Gunakan FULL untuk mendapatkan nama fungsi, file, dan nomor baris dalam pelacakan tumpukan yang disimbolkan Konsol Play.

Jika project Anda mem-build APK, gunakan setelan android.buildTypes.release.ndk.debugSymbolLevel yang ditampilkan sebelumnya untuk membuat file simbol debug native secara terpisah. Upload file simbol debug native secara manual ke Konsol Google Play (prosesnya mirip dengan mengupload file pemetaan untuk melakukan deobfuscation pada pelacakan tumpukan). Sebagai bagian dari proses build, plugin Android Gradle akan menampilkan file ini di lokasi project berikut:

app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip

Plugin Android Gradle versi 4.0 atau yang lebih lama (dan sistem build lainnya)

Sebagai bagian dari proses build, plugin Android Gradle menyimpan salinan library simbolik dalam direktori project. Struktur direktori ini mirip dengan yang berikut ini:

app/build/intermediates/cmake/universal/release/obj/
├── armeabi-v7a/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
├── arm64-v8a/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
├── x86/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
└── x86_64/
    ├── libgameengine.so
    ├── libothercode.so
    └── libvideocodec.so
  1. Gunakan konten direktori ini:

    cd app/build/intermediates/cmake/universal/release/obj
    zip -r symbols.zip .
    
  2. Upload file symbols.zip secara manual ke Konsol Google Play.