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
Gunakan konten direktori ini:
cd app/build/intermediates/cmake/universal/release/obj zip -r symbols.zip .
Upload file
symbols.zip
secara manual ke Konsol Google Play.