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.

Membuat crash pengujian

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.

Mendapatkan informasi selengkapnya tentang crash sebelumnya

App Center Crashes memiliki dua API yang memberi Anda informasi lebih lanjut jika aplikasi Anda mengalami crash.

Apakah aplikasi menerima peringatan memori rendah di sesi sebelumnya?

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.

Apakah aplikasi mengalami crash di sesi sebelumnya?

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.

Detail tentang crash terakhir

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);

Menyesuaikan penggunaan Crash App Center Anda

Crash App Center memberikan kemampuan bagi pengembang untuk melakukan tindakan tambahan sebelum dan saat mengirim log crash ke App Center.

Pemrosesan crash di JavaScript

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.

Haruskah crash diproses?

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.

Menambahkan lampiran ke laporan crash

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.

Mengaktifkan atau menonaktifkan Crash App Center saat runtime

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.

Periksa apakah Crash App Center diaktifkan

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);