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 false
ayarlayı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 false
ayarlamanı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 false
ayarlamanı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);