Android NDK
Penting
Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.
Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.
Android NDK memungkinkan Anda mengimplementasikan bagian aplikasi Android menggunakan C dan C++. Anda dapat menggunakan pustaka klien Google Breakpad untuk aplikasi Android Anda untuk menerima jejak tumpukan yang valid dalam kode asli. Jejak tumpukan mungkin hanya berisi alamat memori. Mereka tidak menampilkan nama kelas, metode, nama file, dan nomor baris yang diperlukan untuk membaca dan memahami crash. Untuk mendapatkan alamat memori yang diterjemahkan untuk aplikasi Android NDK, Anda harus mengunggah simbol aplikasi untuk setiap build.
Untuk mempelajari cara melaporkan crash NDK, lihat dokumentasi Android SDK untuk aplikasi Android, atau dokumentasi Unity SDK untuk aplikasi Unity.
Jika Anda ingin mengirim Crash Breakpad dari platform lain ke App Center, lihat dokumentasi unggahan crash kustom.
Crash yang tidak sinkmbolik
Crash yang tidak terimbolikasi ditampilkan di bagian Diagnostik App Center sehingga Anda dapat melihat beberapa detail bahkan sebelum mengunggah simbol. Simbol yang hilang dari crash ini akan ditampilkan di tab "tidak resymbolikasi". Jika simbol yang hilang diunggah, grup crash yang tidak resymbolikasi akan digantikan oleh grup crash simbolis.
Catatan
App Center tidak mendukung simbolisasi bingkai yang berasal dari pustaka sistem. Mengingat fragmentasi tinggi biner sistem untuk Android dan platform lain - yang mungkin berbeda pada kombinasi versi perangkat/OS tertentu - App Center tidak menyediakan simbol itu sendiri untuk biner sistem dan secara otomatis melompati bingkai dari biner sistem dalam simbol.
Membuat file .zip untuk diunggah
Ada dua cara bagi App Center untuk mengambil simbol yang diperlukan untuk simbolikasi. App Center dapat menghasilkannya dari biner asli yang digunakan dalam proyek Anda, atau Anda dapat mengunggah simbol Breakpad secara langsung.
Opsi 1: Mengunggah biner asli
Masukkan semua file .so dari direktori proyek obj/local/$ABI/
ke dalam file .zip.
Opsi 2: Mengunggah simbol Breakpad
- Buang simbol menggunakan toolchain Breakpad seperti yang dijelaskan dalam dokumentasi Breakpad di bawah bagian "Dapatkan simbol penelusuran kesalahan".
- Buat file symbols.zip dengan struktur berikut:
Catatan
Jika Anda mengunggah simbol dari macOS, maka Anda harus membersihkan simbol dari folder asing apa pun, misalnya __MACOS akan dihasilkan dan untuk menghapusnya, Anda dapat menggunakan zip -d <symbols.zip> __MACOSX/\*
.
$ unzip -l symbols.zip
Archive: symbols.zip
Length Date Time Name
-------- ---- ---- ----
0 07-22-13 15:07 symbols/
0 07-22-13 15:07 symbols/libnative.so/
0 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
12468 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
0 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
12467 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
-------- -------
24935 6 files
Mengunggah simbol
Catatan
Layanan Build dan Distribusi App Center dapat secara otomatis meneruskan simbol ke layanan Diagnostik. Jika Anda menggunakan App Center untuk membuat dan mendistribusikan aplikasi secara otomatis ke pengguna akhir, Anda tidak perlu mendapatkan dan mengunggah file simbol secara manual seperti yang dijelaskan dalam langkah-langkah di bawah ini.
Portal Pusat Aplikasi
- Masuk ke App Center dan pilih aplikasi Anda.
- Di menu sebelah kiri, navigasikan ke bagian Diagnostik , lalu Masalah.
- Jika aplikasi Anda belum melaporkan crash, Anda harus menggunakan API atau CLI untuk mengunggah simbol Breakpad.
- Jika aplikasi Anda sudah melaporkan crash yang memerlukan simbol, periksa tab Tidak sinkmbolik dan harus ada grup versi dengan simbol yang hilang, klik untuk mengungkapkan menu untuk mengunggah file.
- Setelah simbol diindeks oleh App Center, crash akan dilambangkan untuk Anda.
App Center API
Proses untuk mengunggah simbol melalui API melibatkan serangkaian tiga panggilan API: satu untuk mengalokasikan ruang di backend kami, satu untuk mengunggah file, dan satu untuk memperbarui status unggahan. Isi panggilan API pertama harus diatur symbol_type
ke Breakpad
.
POST
Picu permintaan ke API symbol_uploads. Panggilan ini mengalokasikan ruang di backend kami untuk file Anda dan mengembalikansymbol_upload_id
properti danupload_url
.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
- Menggunakan properti yang
upload_url
dikembalikan dari langkah pertama, buatPUT
permintaan dengan header :"x-ms-blob-type: BlockBlob"
dan berikan lokasi file Anda di disk. Panggilan ini mengunggah file ke akun penyimpanan backend kami. Pelajari selengkapnya tentang header permintaan PUT Blob .
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
- Buat
PATCH
permintaan ke API symbol_uploads menggunakan properti yangsymbol_upload_id
dikembalikan dari langkah pertama. Dalam isi permintaan, tentukan apakah Anda ingin mengatur status unggahan kecommitted
(berhasil diselesaikan) proses pengunggahan, atauaborted
(tidak berhasil diselesaikan).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
Catatan
SIMBOL mengunggah API tidak berfungsi untuk file yang lebih besar dari 256MB. Gunakan App Center CLI untuk mengunggah file-file ini. Anda dapat menginstal App Center CLI dengan mengikuti instruksi di repositori CLI App Center kami.
App Center CLI
Anda juga dapat menggunakan CLI untuk mengunggah file simbol:
appcenter crashes upload-symbols --breakpad {symbols file}
Mengabaikan simbol
Saat App Center tidak memiliki semua file simbol untuk sepenuhnya melambangkan laporan crash, crash dicantumkan di tab Tidak symbolikat . Simbol yang diperlukan diunggah dari halaman ini jika Anda memiliki akses ke simbol tersebut.
Jika Anda tidak dapat mengunggah simbol, Anda bisa menandainya sebagai Diabaikan dengan memilih baris dalam tabel dan mengklik tombol Abaikan versi . Tombol ini memberi tahu App Center untuk memproses crash dan melambangkannya sepenuhnya dengan simbol pada file. Setelah selesai diproses, mereka akan muncul di tab Crash yang sebagian dilambangkan. Crash baru yang juga bergantung pada ID simbol yang sama yang ditandai sebagai diabaikan akan melewati tab Tidak Terimbolikasi saat masuk dan mengalir melalui sistem.