Chybové ukončení App Center (Cordova)
Důležité
Visual Studio App Center je naplánované k vyřazení na 31. března 2025. I když můžete Visual Studio App Center dál používat, dokud ho úplně nevyřadíte, existuje několik doporučených alternativ, na které můžete migraci zvážit.
Přečtěte si další informace o časových osách a alternativách podpory.
Poznámka
Podpora aplikací Cordova skončila v dubnu 2022. Další informace najdete v blogu app center.
Chybové ukončení app center automaticky vygeneruje protokol chybových ukončení pokaždé, když dojde k chybě aplikace. Protokol se nejprve zapíše do úložiště zařízení, a když uživatel aplikaci znovu spustí, zpráva o chybách se odešle do App Center. Shromažďování chyb funguje pro beta i živé aplikace, tj. ty, které byly odeslány do App Store. Protokoly chyb obsahují cenné informace, které vám pomůžou chybu opravit.
Pokud jste v aplikaci ještě nenastavili sadu SDK, postupujte podle Začínáme části.
Chybové ukončení app center poskytuje rozhraní API pro vygenerování testovací chyby pro snadné testování sady SDK. Toto rozhraní API se dá použít jenom v testovacích nebo beta aplikacích a v produkčních aplikacích nic nedělá.
AppCenter.Crashes.generateTestCrash();
Poznámka
Aby se tato chyba odeslala do App Center, musí být vaše aplikace Cordova zkompilovaná v režimu vydání.
Aplikace App Center crashes má dvě rozhraní API, která poskytují další informace pro případ, že dojde k chybě aplikace.
Kdykoli po spuštění sady SDK můžete zkontrolovat, jestli aplikace obdržela upozornění paměti v předchozí relaci:
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);
Poznámka
V některých případech nemusí spuštění nedostatku paměti zařízení aktivovat sledovatelné události.
Kdykoli po spuštění sady SDK můžete zkontrolovat, jestli se aplikace při předchozím spuštění chybově ukončila:
var success = function(didCrash) {
console.log("there was " + (didCrash ? "a" : "no") + " crash");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.hasCrashedInLastSession(success, error);
To se hodí v případě, že chcete upravit chování nebo uživatelské rozhraní aplikace po chybovém ukončení. Někteří vývojáři můžou chtít ukázat něco, co by se uživatelům omlouval nebo aby se s tím po chybovém ukončení spojili.
Pokud dříve došlo k chybovému ukončení vaší aplikace, můžete získat podrobnosti o posledním chybovém ukončení.
var success = function(crashReport) {
//do something with crash report
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.lastSessionCrashReport(success, error);
Chybové ukončení app center umožňuje vývojářům provádět další akce před a při odesílání protokolů chyb do App Center.
Sadu SDK můžete nakonfigurovat tak, aby odesílala zprávy o chybách automaticky nebo aby v JavaScriptu posílala chybové ukončení procesů změnou hodnoty předvolby APPCENTER_CRASHES_ALWAYS_SEND
v config.xml. Pokud chcete zpracovat chybové ukončení v JavaScriptu, nastavte ho na false
.
<preference name="APPCENTER_CRASHES_ALWAYS_SEND" value="false" />
Pak můžete pomocí AppCenter.Crashes.process(processFunction, errorCallback)
metody přizpůsobit proces selhání.
sendCallback
Pokud se chcete rozhodnout, jestli je potřeba určité chybové ukončení zpracovat nebo ne, předejte false
do pole . Může například dojít k chybovému ukončení na úrovni systému, které byste chtěli ignorovat a které nechcete odesílat do 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);
V opačném případě předejte true
sendCallback
funkci a chybové ukončení se odešle.
var errorCallback = function(error) {
console.error(error);
};
var processFunction = function(attachments, sendCallback) {
sendCallback(true); //crash will be sent
};
AppCenter.Crashes.process(processFunction, errorCallback);
Poznámka
Pokud chcete tuto funkci použít, musíte vconfig.xmlnastavit APPCENTER_CRASHES_ALWAYS_SEND
hodnotu předvolby na false
.
Tato funkce je proto závislá na chybových ukončeních zpracování v JavaScriptu.
Do zprávy o chybách můžete přidat binární a textové přílohy. Sada SDK je odešle spolu s chybovým ukončením, abyste je viděli na portálu App Center. Následující zpětné volání bude vyvoláno přímo před odesláním uložené chyby z předchozích spuštění aplikace, ale ne v době chybového ukončení. Ujistěte se, že soubor přílohy nemá název minidump.dmp
, protože tento název je vyhrazený pro soubory s minidumpem. Tady je příklad připojení textu a obrázku k chybovému ukončení:
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);
Poznámka
Pokud chcete tuto funkci použít, musíte vconfig.xmlnastavit APPCENTER_CRASHES_ALWAYS_SEND
hodnotu předvolby na false
.
Tato funkce je proto závislá na chybových ukončeních zpracování v JavaScriptu.
Poznámka
Limit velikosti je aktuálně 1,4 MB na Androidu a 7 MB v iOSu. Pokus o odeslání větší přílohy způsobí chybu.
Za běhu můžete povolit a zakázat chybové ukončení App Center. Pokud ho zakážete, sada SDK nebude pro aplikaci hlásit žádné chybové ukončení.
var success = function() {
console.log("crashes disabled");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.setEnabled(false, success, error);
Pokud chcete znovu povolit chybové ukončení app center, použijte stejné rozhraní API, ale předejte true
ho jako parametr.
var success = function() {
console.log("crashes enabled");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.setEnabled(true, success, error);
Stav se během spouštění aplikací zachová v úložišti zařízení.
Můžete také zkontrolovat, jestli je povolená chyba App Center:
var success = function(result) {
console.log("crashes " + (result) ? "enabled" : "disabled");
}
var error = function(error) {
console.error(error);
}
AppCenter.Crashes.isEnabled(success, error);