Aracılığıyla paylaş


App Center Kilitlenmeleri (Cordova)

Önemli

Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.

Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.

Not

Cordova Uygulamaları desteği Nisan 2022'de sona erdi. App Center blogunda daha fazla bilgi bulabilirsiniz.

App Center Kilitlenmeleri, uygulamanız her kilitlenişinde otomatik olarak bir kilitlenme günlüğü oluşturur. Günlük ilk olarak cihazın depolama alanına yazılır ve kullanıcı uygulamayı yeniden başlattığında kilitlenme raporu App Center'a gönderilir. Kilitlenmeleri toplamak hem beta hem de canlı uygulamalarda(App Store gönderilenler) çalışır. Kilitlenme günlükleri, kilitlenmeyi düzeltmenize yardımcı olacak değerli bilgiler içerir.

Uygulamanızda SDK'yı henüz ayarlamadıysanız Başlarken bölümünü izleyin.

Test kilitlenmesi oluşturma

App Center Kilitlenmeleri, SDK'nın kolay test edilmesi için bir test kilitlenmesi oluşturmanızı sağlayan bir API sağlar. Bu API yalnızca test/beta uygulamalarında kullanılabilir ve üretim uygulamalarında hiçbir şey yapmaz.

AppCenter.Crashes.generateTestCrash();

Not

Bu kilitlenmenin App Center'a gönderilmesi için Cordova uygulamanızın yayın modunda derlenmesi gerekir.

Önceki kilitlenme hakkında daha fazla bilgi edinin

App Center Kilitlenmeleri, uygulamanızın kilitlenmesi durumunda size daha fazla bilgi sağlayan iki API'ye sahiptir.

Uygulama önceki oturumda düşük bellek uyarısı mı aldı?

SDK'yı başlattıktan sonra, uygulamanın önceki oturumda bir bellek uyarısı aldığından istediğiniz zaman kontrol edebilirsiniz:

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

Not

Bazı durumlarda, bir cihazın belleğinin düşük çalıştırılması izlenebilir olayları tetiklemeyebilir.

Uygulama önceki oturumda kilitleniyor muydu?

SDK'yı başlattıktan sonra, uygulamanın önceki başlatmada kilitlenip kilitlenmediğini kontrol edebilirsiniz:

var success = function(didCrash) {
    console.log("there was " + (didCrash ? "a" : "no") + " crash");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.hasCrashedInLastSession(success, error);

Bu, kilitlenme gerçekleştikten sonra uygulamanızın davranışını veya kullanıcı arabirimini ayarlamak istemeniz durumunda kullanışlıdır. Bazı geliştiriciler kullanıcılarından özür dileyecek veya bir kilitlenme oluştuktan sonra iletişim kurmak için bir şey göstermek isteyebilir.

Son kilitlenmeyle ilgili ayrıntılar

Uygulamanız daha önce kilitlendiyse son kilitlenmeyle ilgili ayrıntıları alabilirsiniz.

var success = function(crashReport) {
    //do something with crash report
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.lastSessionCrashReport(success, error);

App Center Kilitlenmeleri kullanımınızı özelleştirme

App Center Kilitlenmeleri, geliştiricilerin App Center'a kilitlenme günlükleri göndermeden önce ve gönderirken ek eylemler gerçekleştirmesine olanak sağlar.

JavaScript'te kilitlenmeleri işleme

sdk'sını, config.xml'daki tercih APPCENTER_CRASHES_ALWAYS_SEND değerini değiştirerek javascript'te kilitlenme raporlarını otomatik olarak gönderecek veya kilitlenmeleri işlayacak şekilde yapılandırabilirsiniz. JavaScript'te kilitlenmeleri işlemek için olarak falseayarlayın.

<preference name="APPCENTER_CRASHES_ALWAYS_SEND" value="false" />

Ardından kilitlenme işlemlerini özelleştirmek için yöntemini kullanabilirsiniz AppCenter.Crashes.process(processFunction, errorCallback) .

Kilitlenme işlenmeli mi?

Belirli bir kilitlenmenin sendCallback işlenmesi gerekip gerekmediğine karar vermek istiyorsanız adresine geçinfalse. Örneğin, yoksaymak istediğiniz ve App Center'a göndermek istemediğiniz bir sistem düzeyinde kilitlenme olabilir.

var errorCallback = function(error) {
    console.error(error);
};

var processFunction = function(attachments, sendCallback) {
    sendCallback(false); //crash won't be sent
};

AppCenter.Crashes.process(processFunction, errorCallback);

Aksi takdirde işlevine sendCallback geçirin true ve kilitlenme gönderilir.

var errorCallback = function(error) {
    console.error(error);
};

var processFunction = function(attachments, sendCallback) {
    sendCallback(true); //crash will be sent
};

AppCenter.Crashes.process(processFunction, errorCallback);

Not

Bu özelliği kullanmak için config.xml'da tercih değerini olarak falseayarlamanız APPCENTER_CRASHES_ALWAYS_SEND gerekir.

Bu nedenle bu özellik JavaScript'te Kilitlenmeleri İşlemeye bağımlıdır.

Kilitlenme raporuna ek ekleme

Kilitlenme raporuna ikili ve metin ekleri ekleyebilirsiniz. SDK, bunları App Center portalında görebilmeniz için kilitlenmeyle birlikte gönderir. Önceki uygulama başlatmalarından depolanmış kilitlenme gönderilmeden hemen önce aşağıdaki geri arama çağrılır, ancak kilitlenme zamanında çağrılmayacak. Minidump dosyaları için ayrılmış bir ad olduğundan ek dosyasının adlandırılmadığındanminidump.dmp emin olun. Burada, kilitlenmeye metin ve görüntü ekleme örneği verilmiştir:

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

Not

Bu özelliği kullanmak için config.xml'de tercih değerini olarak falseayarlamanız APPCENTER_CRASHES_ALWAYS_SEND gerekir.

Bu nedenle bu özellik JavaScript'te Kilitlenmeleri İşlemeye bağımlıdır.

Not

Boyut sınırı şu anda Android'de 1,4 MB ve iOS'ta 7 MB'tır. Daha büyük bir ek göndermeye çalışmak bir hatayı tetikler.

Çalışma zamanında App Center Kilitlenmelerini etkinleştirme veya devre dışı bırakma

App Center Kilitlenmelerini çalışma zamanında etkinleştirebilir ve devre dışı bırakabilirsiniz. Devre dışı bırakırsanız SDK, uygulama için kilitlenme bildirimi yapmaz.

var success = function() {
    console.log("crashes disabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.setEnabled(false, success, error);

App Center Kilitlenmelerini yeniden etkinleştirmek için aynı API'yi kullanın ancak parametre olarak geçirin true .

var success = function() {
    console.log("crashes enabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.setEnabled(true, success, error);

Durum, uygulama başlatmaları arasında cihazın depolama alanında kalıcı hale getirilir.

App Center Kilitlenmelerinin etkinleştirilip etkinleştirilmediğini denetleyin

App Center Kilitlenmelerinin etkinleştirilip etkinleştirilmediğini de de de kontrol edebilirsiniz:

var success = function(result) {
    console.log("crashes " + (result) ? "enabled" : "disabled");
}

var error = function(error) {
    console.error(error);
}
AppCenter.Crashes.isEnabled(success, error);