Řešení potíží se sadou MAUI a Xamarin SDK
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.
Shromažďování podrobných protokolů
Pokyny k úpravě úrovně protokolu na VERBOSE
najdete v části Další rozhraní API .
Podrobné protokoly najdete v okně Ladění>výstupusystému Windows>.
Problémy během instalace
- V případě aplikace Xamarin.Forms se ujistěte, že jsou balíčky nainstalované ve všech projektech, které odkazují na knihovny. V opačném případě se zobrazí chyby.
- Pokud se při sestavování pro Xamarin.iOS zobrazí tato chyba:
MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001)
Musíte aktualizovat komponentu Xamarin.iOS na verzi 10.4.0.128 nebo novější. - Pokud se při sestavování pro Xamarin.iOS zobrazí tato chyba nebo
MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210)
podobná chyba (MT5211
kód s podobnou zprávou zmiňující App Center), nezapomeňte před použitím rozhraní API konkrétní služby volatAppCenter.Start
. Pokud voláteStart
, ale máte tento problém, musíte aktualizovat komponentu Xamarin.iOS na verzi 10.4.0.128 nebo novější. - V konzole vyhledejte protokol Assert se zprávou "Sada App Center SDK byla úspěšně nakonfigurována". Tím se ověří, že je sada SDK úspěšně nakonfigurovaná.
Analytická data se nezobrazují na portálu
Ujistěte se, že jste správně integrovali moduly sady SDK.
Ujistěte se, že spolu s voláním
Start()
metody je zahrnutý správný tajný kód aplikace. PřesnýStart()
kód můžete zkopírovat tak, že aplikaci otevřete na portálu a přejdete na stránku Začínáme.Pokud chcete zobrazit protokoly, které se odesílají do back-endu, změňte úroveň protokolu ve vaší aplikaci na Podrobné a sada SDK vytiskne protokoly v konzole. Před spuštěním sady SDK zavolejte níže uvedené rozhraní API.
AppCenter.LogLevel = LogLevel.Verbose;
Zkontrolujte protokoly "Sada App Center SDK se úspěšně nakonfigurovala" (na úrovni protokolu informací) a pak zkontrolujte, jestli se zobrazují protokoly požadavků HTTPS.
Ujistěte se, že je vaše zařízení online.
Někdy může trvat několik minut, než se protokoly na portálu proberou. V takovém případě nějakou dobu počkejte.
Pokud chcete zkontrolovat, jestli back-end App Center přijal vaše data, přejděte do části Tok protokolu ve službě Analytics. Vaše události by se měly zobrazit po odeslání.
Chybové ukončení se na portálu nezobrazují
Ujistěte se, že jste správně integrovali moduly sady SDK.
Ujistěte se, že spolu s voláním
Start()
metody je zahrnutý správný tajný kód aplikace. PřesnýStart()
kód můžete zkopírovat tak, že aplikaci otevřete na portálu a přejdete na stránku Začínáme.Po chybovém ukončení restartujte aplikaci. Při chybovém ukončení App Center se protokol chybových ukončení předá až po restartování. V Xamarin.iOS a Xamarin.Mac sdk navíc neuloží žádný protokol chybových ukončení, pokud připojíte ladicí program. Ujistěte se, že ladicí program není připojený při chybovém ukončení aplikace pro iOS. V Xamarin.Android může dojít k chybovému ukončení, když máte připojený ladicí program, ale po přerušení neošetřené výjimky je potřeba pokračovat v provádění.
Pokud chcete zobrazit protokoly, které se odesílají do back-endu, změňte úroveň protokolu ve vaší aplikaci na Podrobné a sada SDK vytiskne protokoly v konzole. Před spuštěním sady SDK zavolejte níže uvedené rozhraní API.
AppCenter.LogLevel = LogLevel.Verbose;
Zkontrolujte protokoly "Sada App Center SDK se úspěšně nakonfigurovala" (na úrovni protokolu informací) a pak zkontrolujte, jestli se zobrazují protokoly požadavků HTTPS.
Nepoužívejte žádnou jinou knihovnu, která poskytuje funkci zasílání zpráv o chybách, například Xamarin Insights nebo HockeyApp. Můžete mít jenom jednu integrovanou sadu SDK pro hlášení chyb.
Ujistěte se, že je vaše zařízení online.
Někdy může trvat několik minut, než se protokoly na portálu proberou. V takovém případě nějakou dobu počkejte.
Pokud chcete zkontrolovat, jestli sada SDK zjistila chybové ukončení při příštím spuštění aplikace, můžete voláním rozhraní API zkontrolovat, jestli aplikace havarovala v poslední relaci a jestli se zobrazilo upozornění. Nebo můžete zpětné volání při selhání rozšířit a zjistit, jestli se úspěšně odeslalo na server.
Pokud chcete zkontrolovat, jestli back-end App Center obdržel chybové ukončení, přejděte ve službě Analytics do části Tok protokolu. Po odeslání by se tam měla objevit chyba.
Distribuce a aktualizace v aplikaci blokují automatizované testy uživatelského rozhraní
Pokud spouštíte automatizované testy uživatelského rozhraní, povolené aktualizace v aplikaci zablokují vaše automatizované testy uživatelského rozhraní, protože se pokusí ověřit v back-endu App Center. Pro testy uživatelského rozhraní doporučujeme nepovolovat distribuci v App Center.
Google Play odmítne aplikaci po přidání DistributePlay.
Google Play odmítá aplikace, které používají Distribute
modul, protože obsahuje implementaci aktualizace v aplikaci. Aby se této situaci zabránilo, sada App Center SDK obsahuje DistributePlay
modul, který obsahuje zástupné procedury pro hlavní modul. Nahrazuje hlavní assembler za stubbed assemble, který napodobuje Distribute
rozhraní API. V klientské aplikaci nejsou vyžadovány žádné další změny. Neobsahuje DistributePlay
žádný kód související s aktualizací v aplikaci.
Pokud se i po nahrazení Distribute
modulu DistributePlay
vaší aplikací stále zamítne, postupujte podle následujících kroků a ověřte, že Distribute
se modul správně nahradil:
- Ujistěte se, že jste ve všech verzích nahradili
Distribute
zaDistributePlay
pro všechny skupiny publikování v konzole Google Play. - Pokud používáte
Xamarin.Forms
, nezapomeňte modul přidatDistributePlay
do sdílených projektů iXamarin.Android
projektů. - Ověřte, že výstupní soubor neobsahuje
Microsoft.AppCenter.Distribute.Android.Bindings.dll
sestavení. Ke kontrole můžete použít apk Analyzer .
Zprávy v konzole, které indikují, že databázi nebylo možné otevřít v iOSu
App Center používá SQLite k zachování protokolů před jejich odesláním do back-endu. Pokud aplikaci sesoučíte s vlastní knihovnou SQLite a nepoužíváte knihovnu poskytovanou operačním systémem, můžou se v konzole [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database
zobrazit podobné chyby a v back-endu se nezobrazí žádné analytické informace ani informace o chybách. Aktualizujte sadu SDK na verzi 0.16.0 nebo novější.
Ochrana hodnoty tajného kódu app center
Je app_secret
identifikátor vaší aplikace, musí vědět, na kterou aplikaci se provoz vztahuje, a nedá se použít k načtení nebo úpravě existujících dat. Pokud je vaše app_secret
zařízení vystavené, je největším rizikem odeslání špatných dat do aplikace, ale nebude to mít vliv na zabezpečení dat.
Pokud chcete načíst citlivá data, musíte zadat token aplikace nebo uživatele, který se vygeneruje na straně klienta. Neexistuje žádný způsob, jak úplně zabezpečit data na straně klienta.
Zabezpečení aplikace můžete zlepšit použitím proměnné prostředí, která vloží tajný kód aplikace do kódu. Tajný kód se tak v kódu nezobrazí.