Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
A Visual Studio App Center 2025. március 31-én megszűnt, kivéve az Elemzési és diagnosztikai funkciókat, amelyek 2026. június 30-ig továbbra is támogatottak lesznek. Tudj meg többet.
Az App Center összeomlásai automatikusan létrehoznak összeomlási naplót minden alkalommal, amikor az alkalmazás összeomlik. A napló először az eszköz tárolójába lesz beírva, és amikor a felhasználó újra elindítja az alkalmazást, a rendszer elküldi az összeomlási jelentést az App Centernek. Az összeomlások összegyűjtése a bétaverziós és az élő alkalmazások, azaz az App Store-ba küldött alkalmazások esetében is működik. Az összeomlási naplók értékes információkat tartalmaznak az összeomlás elhárításához.
Kövesse az Első lépések szakaszt, ha még nem állította be az SDK-t az alkalmazásban.
Az iOS-en található összeomlási naplókhoz szimbólumokra is szükség van, tekintse meg az App Center Diagnostics dokumentációját , amely bemutatja, hogyan adhat szimbólumokat az alkalmazásnak.
Megjegyzés:
IOS és Mac rendszeren az SDK nem menti az összeomlási naplót, ha hibakeresőt csatolt. Győződjön meg arról, hogy a hibakereső nincs csatlakoztatva, amikor összeomlik az iOS és a macOS alkalmazás. Androidon a hibakereső csatlakoztatása közben összeomlhat, de a nem kezelt kivétel feltörése után folytatnia kell a végrehajtást.
Készítsen tesztösszeomlást
Az App Center Crashes egy API-t biztosít, amellyel tesztösszeomlást hozhat létre az SDK egyszerű teszteléséhez. Ez az API a hibakeresést és a kiadási konfigurációkat ellenőrzi. Így csak hibakereséskor használhatja, mivel a kiadási alkalmazások esetében nem fog működni.
Crashes.GenerateTestCrash();
További információ az előző összeomlásról
Az App Center Összeomlások két API-val rendelkezik, amelyek további információt nyújtanak arról, hogy az alkalmazás összeomlott-e.
Az alkalmazás alacsony memóriahasználati figyelmeztetést kapott az előző munkamenetben?
Az SDK elindítása után bármikor ellenőrizheti, hogy az alkalmazás memóriariasztást kapott-e az előző munkamenetben:
bool hadMemoryWarning = await Crashes.HasReceivedMemoryWarningInLastSessionAsync();
Megjegyzés:
Ezt a metódust csak akkor szabad használni, ha a Crashes már elindult. Mindig visszaad false a kezdés előtt.
Megjegyzés:
Bizonyos esetekben a kevés memóriával rendelkező eszköz nem tud eseményeket küldeni.
Összeomlott az alkalmazás az előző munkamenetben?
Az SDK elindítása után bármikor ellenőrizheti, hogy az alkalmazás összeomlott-e az előző indításkor:
bool didAppCrash = await Crashes.HasCrashedInLastSessionAsync();
Ez akkor hasznos, ha az összeomlás után módosítani szeretné az alkalmazás viselkedését vagy felhasználói felületét. Egyes fejlesztők úgy döntenek, hogy további felhasználói felületet jelenítenek meg, hogy bocsánatot kérjenek a felhasználóiktól, vagy szeretnének kapcsolatot létrehozni egy összeomlás után.
Megjegyzés:
Ezt a metódust csak akkor szabad használni, ha a Crashes már elindult. Mindig visszaad false a kezdés előtt.
Az utolsó összeomlás részletei
Ha az alkalmazás korábban összeomlott, részletes információkat kaphat az utolsó összeomlásról.
ErrorReport crashReport = await Crashes.GetLastSessionCrashReportAsync();
Megjegyzés:
Ezt a metódust csak akkor szabad használni, ha a Crashes már elindult. Mindig visszaad null a kezdés előtt.
Ehhez az API-hoz számos használati eset létezik, a leggyakoribb pedig azoké, akik ezt az API-t hívják, és implementálják az egyéni összeomláskezelő delegáltot vagy figyelőt.
Az App Center-összeomlások használatának testreszabása
Az App Center összeomlásai visszahívásokat biztosítanak a fejlesztőknek, hogy további műveleteket hajtsanak végre az összeomlási naplók App Centerbe való küldése előtt és során.
Megjegyzés:
Állítsa be a visszahívást mielőtt meghívná a AppCenter.Start(), mivel az App Center közvetlenül a kezdés után megkezdi az összeomlások feldolgozását.
Fel kell dolgoznunk az összeomlást?
Állítsa be ezt a callback függvényt, ha el szeretné dönteni, hogy egy adott összeomlás feldolgozásra szorul-e. Előfordulhat például egy rendszerszintű összeomlás, amelyet figyelmen kívül szeretne hagyni, és amelyet nem szeretne elküldeni az App Centerbe.
Crashes.ShouldProcessErrorReport = (ErrorReport report) =>
{
// Check the report in here and return true or false depending on the ErrorReport.
return true;
};
Kérje meg a felhasználó hozzájárulását összeomlási napló küldéséhez
Ha fontos önnek a felhasználói adatvédelem, érdemes lehet a felhasználó megerősítését kapnia, mielőtt összeomlási jelentést küldene az App Centernek. Az SDK biztosít egy visszahívást, amely az App Center Crashes számára jelzi, hogy várjon a felhasználói visszaigazolásra, mielőtt bármilyen összeomlási jelentést küldene.
Ha ezt választotta, ön a felelős a felhasználó megerősítésének beszerzéséért, például egy párbeszédpanelen keresztül, amely a következő lehetőségek egyikét tartalmazza: Always Send, Send és Don't send. A bemenet alapján meg fogja mondani az App Center Crashesnek, hogy mit kell tennie, és az összeomlást ennek megfelelően fogja kezelni.
Megjegyzés:
Az SDK ehhez nem jelenít meg párbeszédpanelt, az alkalmazásnak saját felhasználói felületet kell biztosítania a felhasználói hozzájárulás kéréséhez.
Megjegyzés:
Az alkalmazás nem hívhat NotifyUserConfirmation meg explicit módon, ha nem implementál egy felhasználómegerősítő párbeszédpanelt; az Összeomlások modul implicit módon kezeli a naplók küldését.
Az alábbi visszahívás bemutatja, hogyan adhatja az SDK-nak az utasítást, hogy várjon a felhasználói megerősítésre az összeomlások elküldése előtt.
Crashes.ShouldAwaitUserConfirmation = () =>
{
// Build your own UI to ask for user consent here. SDK doesn't provide one by default.
// Return true if you built a UI for user consent and are waiting for user input on that custom UI, otherwise false.
return true;
};
Amennyiben true értéket ad vissza a fenti visszahívásban, az alkalmazásnak saját kódját használva felhasználói engedélyt kell szereznie, és az eredményt az alábbi API segítségével kell elküldenie az SDK-nak.
// Depending on the user's choice, call Crashes.NotifyUserConfirmation() with the right value.
Crashes.NotifyUserConfirmation(UserConfirmation.DontSend);
Crashes.NotifyUserConfirmation(UserConfirmation.Send);
Crashes.NotifyUserConfirmation(UserConfirmation.AlwaysSend);
Példaként hivatkozhat az egyéni párbeszédpanel-példánkra.
Információk az összeomlási napló küldési állapotáról
Időnként tudni szeretné az alkalmazás összeomlásának állapotát. Gyakori használati eset, hogy olyan felhasználói felületet szeretne megjeleníteni, amely tájékoztatja a felhasználókat arról, hogy az alkalmazás összeomlási jelentést küld, vagy ha az alkalmazás az indítás után gyorsan összeomlik, módosítania kell az alkalmazás viselkedését, hogy az összeomlási naplók elküldhetők legyenek. Az App Center Összeomlások három különböző visszahívást biztosít, amelyeket az alkalmazásban használhat, hogy értesüljön a történtekről:
A rendszer a következő visszahívást hívja meg, mielőtt az SDK összeomlási naplót küld
Crashes.SendingErrorReport += (sender, e) =>
{
// Your code, e.g. to present a custom UI.
};
Ha hálózati problémák vagy kimaradás lép fel a végponton, és újraindítja az alkalmazást, SendingErrorReport a folyamat újraindítása után újra aktiválódik.
A rendszer az alábbi visszahívást fogja meghívni, miután az SDK sikeresen elküldte az összeomlási naplót
Crashes.SentErrorReport += (sender, e) =>
{
// Your code, e.g. to hide the custom UI.
};
A rendszer a következő visszahívást hívja meg, ha az SDK nem tudott összeomlási naplót küldeni
Crashes.FailedToSendErrorReport += (sender, e) =>
{
// Your code goes here.
};
A(z) FailedToSendErrorReport azt jelenti, hogy nem helyreállítható hiba, például egy 4xx kód történt. Például a 401 azt jelenti, hogy a appSecret helytelen.
Ez a visszahívás hálózati probléma esetén nem aktiválódik. Ebben az esetben az SDK folytatja az újrapróbálkozást (és szünetelteti az újrapróbálkozást, amíg a hálózati kapcsolat leáll).
Összeomlási jelentéshez mellékletek hozzáadása
Bináris és szöveges mellékleteket is hozzáadhat az összeomlási jelentésekhez. Az SDK az összeomlással együtt küldi el őket, hogy megjelenjenek az App Center portálon. A rendszer a következő visszahívást fogja meghívni, mielőtt elküldené a tárolt összeomlást az előző alkalmazásindításokból. Az összeomlás bekövetkezésekor a rendszer nem fogja meghívni. Ügyeljen arra, hogy a mellékletfájl neve ne legyen elnevezve minidump.dmp , mivel a név a minidump fájlok számára van fenntartva. Íme egy példa arra, hogyan csatolhat szöveget és képet egy hibajelenséghez.
Crashes.GetErrorAttachments = (ErrorReport report) =>
{
// Your code goes here.
return new ErrorAttachmentLog[]
{
ErrorAttachmentLog.AttachmentWithText("Hello world!", "hello.txt"),
ErrorAttachmentLog.AttachmentWithBinary(Encoding.UTF8.GetBytes("Fake image"), "fake_image.jpeg", "image/jpeg")
};
};
Megjegyzés:
A méretkorlát jelenleg 7 MB. Ha nagyobb mellékletet kísérel meg elküldeni, hiba lép fel.
Az App Center futásidejű összeomlásainak engedélyezése vagy letiltása
Futásidőben engedélyezheti és letilthatja az App Center összeomlás funkcióját. Ha letiltja, az SDK nem végez összeomlási jelentést az alkalmazáshoz.
Crashes.SetEnabledAsync(false);
Az App Center összeomlásainak újbóli engedélyezéséhez használja ugyanazt az API-t, de adjon át true paraméterként.
Crashes.SetEnabledAsync(true);
Nem kell megvárnia ezt a hívást, hogy más API-hívásokat (például IsEnabledAsync) konzisztenssé tegyen.
Az állapot megmarad az eszköz tárolójában az alkalmazásindítások során.
Megjegyzés:
Ezt a módszert csak akkor szabad használni, ha a Crashes már elindult.
Ellenőrizze, hogy engedélyezve van-e az App Center Crashes funkciója
Azt is ellenőrizheti, hogy engedélyezve van-e az App Center Crashes:
bool isEnabled = await Crashes.IsEnabledAsync();
Megjegyzés:
Ezt a metódust csak akkor szabad használni, ha a Crashes már elindult. Mindig visszaad false a kezdés előtt.
Kezelt hibák
Az App Center lehetővé teszi a hibák nyomon követését is a kezelt kivételek használatával. Ehhez használja a TrackError következő módszert:
try {
// your code goes here.
} catch (Exception exception) {
Crashes.TrackError(exception);
}
Az alkalmazások opcionálisan tulajdonságokat csatolhatnak egy kezelt hibajelentéshez, hogy további kontextust biztosítsanak. Adja át a tulajdonságokat kulcs/érték párok szótáraként (csak sztringek) az alábbi példában látható módon.
try {
// your code goes here.
} catch (Exception exception) {
var properties = new Dictionary<string, string>
{
{ "Category", "Music" },
{ "Wifi", "On"}
};
Crashes.TrackError(exception, properties);
}
Bináris és szöveges mellékleteket is hozzáadhat a kezelt hibajelentésekhez. Adja át a mellékleteket objektumtömbként ErrorAttachmentLog az alábbi példában látható módon.
try {
// your code goes here.
} catch (Exception exception) {
var attachments = new ErrorAttachmentLog[]
{
ErrorAttachmentLog.AttachmentWithText("Hello world!", "hello.txt"),
ErrorAttachmentLog.AttachmentWithBinary(Encoding.UTF8.GetBytes("Fake image"), "fake_image.jpeg", "image/jpeg")
};
Crashes.TrackError(exception, attachments: attachments);
}