App Center Crash (Cordova)
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.
Catatan
Dukungan untuk Aplikasi Cordova telah berakhir pada April 2022. Temukan informasi selengkapnya di blog App Center.
Crash App Center akan secara otomatis menghasilkan log crash setiap kali aplikasi Anda mengalami crash. Log pertama kali ditulis ke penyimpanan perangkat dan ketika pengguna memulai aplikasi lagi, laporan crash akan dikirim ke App Center. Mengumpulkan crash berfungsi untuk aplikasi beta dan live, yaitu yang dikirimkan ke App Store. Log crash berisi informasi berharga bagi Anda untuk membantu memperbaiki crash.
Ikuti bagian Memulai jika Anda belum menyiapkan SDK di aplikasi Anda.
App Center Crashes memberi Anda API untuk menghasilkan crash pengujian untuk pengujian SDK yang mudah. API ini hanya dapat digunakan dalam aplikasi pengujian/beta dan tidak akan melakukan apa pun di aplikasi produksi.
AppCenter.Crashes.generateTestCrash();
Catatan
Aplikasi Cordova Anda perlu dikompilasi dalam mode rilis agar crash ini dikirim ke App Center.
App Center Crashes memiliki dua API yang memberi Anda informasi lebih lanjut jika aplikasi Anda mengalami crash.
Kapan saja setelah memulai SDK, Anda dapat memeriksa apakah aplikasi menerima peringatan memori di sesi sebelumnya:
var success = function(hadLowMemoryWarning) {
console.log(`there was ${hadLowMemoryWarning ? "a" : "no"} memory warning`);
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.hasReceivedMemoryWarningInLastSession(success, error);
Catatan
Dalam beberapa kasus, menjalankan memori perangkat rendah mungkin tidak memicu peristiwa yang dapat dilacak.
Kapan saja setelah memulai SDK, Anda dapat memeriksa apakah aplikasi mengalami crash di peluncuran sebelumnya:
var success = function(didCrash) {
console.log("there was " + (didCrash ? "a" : "no") + " crash");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.hasCrashedInLastSession(success, error);
Ini berguna jika Anda ingin menyesuaikan perilaku atau UI aplikasi Anda setelah crash terjadi. Beberapa pengembang mungkin ingin menunjukkan sesuatu untuk meminta maaf kepada pengguna mereka, atau untuk menghubungi setelah crash terjadi.
Jika aplikasi Anda mengalami crash sebelumnya, Anda bisa mendapatkan detail tentang crash terakhir.
var success = function(crashReport) {
//do something with crash report
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.lastSessionCrashReport(success, error);
Crash App Center memberikan kemampuan bagi pengembang untuk melakukan tindakan tambahan sebelum dan saat mengirim log crash ke App Center.
Anda dapat mengonfigurasi SDK untuk mengirim laporan crash secara otomatis atau memproses crash di JavaScript dengan mengubah nilai preferensi APPCENTER_CRASHES_ALWAYS_SEND
di config.xml. Untuk memproses crash di JavaScript, atur ke false
.
<preference name="APPCENTER_CRASHES_ALWAYS_SEND" value="false" />
Kemudian Anda dapat menggunakan AppCenter.Crashes.process(processFunction, errorCallback)
metode untuk menyesuaikan prosesi crash.
Teruskan false
ke sendCallback
jika Anda ingin memutuskan apakah crash tertentu perlu diproses atau tidak. Misalnya, mungkin ada crash tingkat sistem yang ingin Anda abaikan dan yang tidak ingin Anda kirim ke App Center.
var errorCallback = function(error) {
console.error(error);
};
var processFunction = function(attachments, sendCallback) {
sendCallback(false); //crash won't be sent
};
AppCenter.Crashes.process(processFunction, errorCallback);
Jika tidak, teruskan true
ke sendCallback
fungsi, dan crash akan dikirim.
var errorCallback = function(error) {
console.error(error);
};
var processFunction = function(attachments, sendCallback) {
sendCallback(true); //crash will be sent
};
AppCenter.Crashes.process(processFunction, errorCallback);
Catatan
Untuk menggunakan fitur ini, Anda perlu mengatur APPCENTER_CRASHES_ALWAYS_SEND
nilai preferensi dalam config.xml ke false
.
Dengan demikian, fitur ini bergantung pada Pemrosesan Crash di JavaScript.
Anda dapat menambahkan lampiran biner dan teks ke laporan crash. SDK akan mengirimkannya bersama dengan crash sehingga Anda dapat melihatnya di portal App Center. Panggilan balik berikut akan dipanggil tepat sebelum mengirim crash tersimpan dari peluncuran aplikasi sebelumnya, tetapi tidak pada waktu crash. Pastikan file lampiran tidak dinamai minidump.dmp
sebagai nama tersebut dicadangkan untuk file minidump. Berikut adalah contoh cara melampirkan teks dan gambar ke crash:
var errorCallback = function(error) {
console.error(error);
};
var processFunction = function(attachments, sendCallback) {
for (var i = 0; i < attachments.length; i++) {
attachments[i].addTextAttachment('Hello text attachment!', 'hello.txt');
var imageAsBase64string = '...';
attachments[i].addBinaryAttachment(imageAsBase64string, 'logo.png', 'image/png');
}
sendCallback(true); //crash will be sent
};
AppCenter.Crashes.process(processFunction, errorCallback);
Catatan
Untuk menggunakan fitur tersebut, Anda perlu mengatur APPCENTER_CRASHES_ALWAYS_SEND
nilai preferensi dalam config.xml ke false
.
Dengan demikian, fitur ini bergantung pada Pemrosesan Crash di JavaScript.
Catatan
Batas ukuran saat ini adalah 1,4 MB di Android dan 7 MB di iOS. Mencoba mengirim lampiran yang lebih besar akan memicu kesalahan.
Anda dapat mengaktifkan dan menonaktifkan App Center Crash saat runtime. Jika Anda menonaktifkannya, SDK tidak akan melakukan pelaporan crash untuk aplikasi.
var success = function() {
console.log("crashes disabled");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.setEnabled(false, success, error);
Untuk mengaktifkan App Center Crash lagi, gunakan API yang sama tetapi lewati true
sebagai parameter.
var success = function() {
console.log("crashes enabled");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.setEnabled(true, success, error);
Status ini bertahan di penyimpanan perangkat di seluruh peluncuran aplikasi.
Anda juga dapat memeriksa apakah App Center Crash diaktifkan:
var success = function(result) {
console.log("crashes " + (result) ? "enabled" : "disabled");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.isEnabled(success, error);