Sdílet prostřednictvím


Řešení potíží se sadou iOS SDK

Důležité

Visual Studio App Center bylo vyřazeno 31. března 2025 s výjimkou funkcí Analýzy a diagnostiky, které se budou dál podporovat až do 30. června 2026. Další informace.

Problémy během instalace

  1. V konzole vyhledejte protokol Assert se zprávou " Sada App Center SDK byla úspěšně nakonfigurována". Zpráva znamená, že sada SDK je úspěšně nakonfigurovaná.
  2. Pokud k integraci App Center v aplikaci pro iOS používáte Cocoapods a narazíte na chybu se zprávou – CocoaPods - Unable to find a specification for AppCenterspusťte aktualizaci pod repo update místního úložiště Cocoapods a pak spusťte pod install znovu.
  3. Pokud používáte CocoaPods k integraci App Center do aplikace pro iOS a při kompilaci projektu dojde k chybě se zprávou – framework not found AppCenter.xcframework pak je potřeba aktualizovat (přeinstalovat) Cocoapods na opožděnou verzi spuštěním [sudo] gem install cocoapods.
  4. Pokud binární soubory sady SDK integrujete ručně, ujistěte se, že máte pro svůj projekt povolené moduly.

Analytická data se na portálu nezobrazují

  1. Ujistěte se, že jste moduly SDK integrovali správně.

  2. Ujistěte se, že spolu s voláním metody start:withServices: je zahrnut správný tajný klíč aplikace. Přesný start:withServices:kód můžete zkopírovat tak, že aplikaci otevřete na portálu a přejdete na stránku Začínáme .

  3. Pokud chcete zobrazit protokoly, které se odesílají do backendu, změňte úroveň protokolu na podrobnou ve své aplikaci. Sada SDK pak vytiskne protokoly v konzole. Před spuštěním sady SDK vložte následující volání:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    Ujistěte se, že se v protokolech (na úrovni protokolu INFO ) zobrazuje úspěšně nakonfigurovaná sada App Center SDK, a zkontrolujte, jestli se zobrazují protokoly požadavků HTTPS.

  4. Ujistěte se, že je vaše zařízení online.

  5. Někdy může trvat několik minut, než se logy objeví na portálu. Počkejte nějakou dobu, pokud to tak je.

  6. Pokud chcete zkontrolovat, jestli back-end App Center obdržel vaše data, přejděte do části Tok protokolu ve službě Analytics . Události by se měly zobrazit, jakmile budou odeslány.

V portálu se nezobrazují pády.

  1. Ujistěte se, že jste moduly SDK integrovali správně.

  2. Ujistěte se, že správný tajný klíč aplikace je zahrnut při volání metody start:withServices:. Přesný start:withServices: kód můžete zkopírovat tak, že aplikaci otevřete na portálu a přejdete na stránku Začínáme .

  3. App Center Crashes odešle protokol o pádech až po restartování aplikace. Pokud jste připojeni k ladicímu programu, sada SDK nepředává žádné záznamy o pádech. Ujistěte se, že ladicí program není připojený, když aplikace spadne.

  4. Pokud chcete zobrazit protokoly, které se odesílají do backendu, změňte úroveň protokolu na podrobnou ve své aplikaci. Sada SDK pak vytiskne protokoly v konzole. Před spuštěním sady SDK vložte následující volání:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    Ujistěte se, že se v protokolech (na úrovni protokolu INFO ) zobrazuje úspěšně nakonfigurovaná sada App Center SDK, a zkontrolujte, jestli se zobrazují protokoly požadavků HTTPS.

  5. Nepoužívejte žádné jiné knihovny, které poskytují funkce zasílání zpráv o chybách. Do aplikace můžete integrovat jenom jednu sadu SDK pro hlášení chyb.

  6. Ujistěte se, že je vaše zařízení online.

  7. Někdy může trvat několik minut, než se protokoly zobrazí v portálu. Počkejte nějakou dobu, pokud to tak je.

  8. Zkontrolujte, jestli sada SDK zjistila chybové ukončení při příštím spuštění aplikace. Můžete volat rozhraní API, abyste zkontrolovali, zda se aplikace v poslední relaci chybově ukončila, a v takovém případě se zobrazí upozornění. Nebo můžete zpětné volání pro chybové ukončení didSucceedSendingErrorReport rozšířit, abyste zjistili, jestli se úspěšně odeslala na server.

  9. Pokud chcete zkontrolovat, jestli back-end App Center obdržel chybu, přejděte do části Tok protokolu ve službě Analytics. Jakmile budou odeslány, měly by se tam zobrazit vaše pády.

Výstraha, která uživatele vyzve k aktualizaci, neobsahuje řetězce, ale jenom klíče pro ně

To znamená, že nebyl AppCenterDistributeResources.bundle přidán do projektu. Ujistěte se, že jste soubor zahodili do projektu Xcode a zobrazí se ve fázi sestavení cíle Copy Bundle Resources vaší aplikace. Měl by se tam zobrazit, pokud jste soubor přidali přetažením – Xcode to udělá automaticky za vás. Pokud soubor ve fázi sestavení chybí, přidejte ho, aby se zkompiloval do sady vaší aplikace.

Pokud používáte Cocoapods, postará se o prostředky automaticky. Zkuste pod přeinstalovat.

V konzole se zobrazí zprávy, které značí, že databázi nešlo otevřít.

Počínaje verzí 0.11.0 sady iOS SDK používá App Center k uchování protokolů před jejich odesláním do back-endu protokoly SQLite. Pokud aplikaci seskupujete s vlastní knihovnou SQLite místo toho, abyste ji používali poskytovanou operačním systémem, můžou se v konzole zobrazit chyby podobné této chybě [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database a v back-endu se nezobrazí žádné analytické informace ani informace o chybovém ukončení. Aktualizujte sadu SDK na verzi 0.13.0 nebo novější.

Distribuce a aktualizace v aplikaci blokují moje automatizované testy uživatelského rozhraní

Pokud jsou aktualizace v aplikaci povolené, zablokují vaše automatizované testy uživatelského rozhraní. Proces aktualizace se pokusí ověřit v back-endu App Center. Doporučujeme nepovolit distribuci App Center pro cíl testu uživatelského rozhraní.

Proč je sada SDK distribuovaná jako "statická knihovna".

Primárními cíli návrhu sady App Center SDK je minimální dopad na aplikaci využívající App Center a mít modulární sadu SDK. To by vedlo k distribuci sady SDK jako několika dynamických sdílených knihoven.

App Center se ale distribuuje jako staticky propojená sdílená knihovna zabalená do falešné architektury "fat". To znamená, že sada SDK je propojená v době kompilace , a ne při spuštění, aby se zlepšil výkon. Načtení více dynamických sdílených knihoven trvá dlouho.

Společnost Apple doporučuje optimalizovat spuštění aplikace tak, aby v relaci WWDC nepřesáhola více než 400 ms. Pro dosažení tohoto cíle konkrétně doporučují statické sdílené knihovny přes dynamické sdílené knihovny. Distribuce sady App Center SDK pro iOS jako staticky propojené sdílené knihovny se řídí doporučením společnosti Apple, která poskytuje nejlepší výkon a minimální dopad na aplikaci, která obsahuje sadu SDK.

Pokud chcete získat další informace o staticky propojených sdílených knihovnách a dynamických sdílených knihovnách, doporučujeme, abyste k tématu měli obecnou dokumentaci společnosti Apple.

Proč jsou binární soubory sady SDK tak velké? Mám obavy o velikost aplikace

Binární soubory AppCenter se distribuují jako "fat" architektury, které obsahují řezy pro všechny architektury iPhone a simulátor iPhone. Proto je například AppCenter.framework 10,5 MB ke stažení.

Zkompilovaná velikost binárních souborů sady SDK bude mnohem menší než .framework velikost, kterou přidáte do aplikace v Xcode. Mějte také na paměti, že buildy vydané verze budou menší než sestavení ladění.

Abychom to mohli ilustrovat, vytvořili jsme prázdnou aplikaci Objective-C s Xcode 9.2, přidali jsme do aplikace binární soubory App Center a distribuovanou verzi buildů pro iPhone 7 se systémem iOS 11.3.

Testy jsme spustili bez povoleného bitcode a nepoužili jsme app Thinning. Tyto techniky můžete použít ke zmenšení binární velikosti vaší aplikace ještě více.

Níže uvedená čísla se mohou lišit a záviset na nastavení sestavení, proto je zvažte jako hrubou příručku. To znamená, že přidání sady App Center SDK do aplikace má minimální dopad na velikost binárního souboru vaší aplikace.

Použité moduly App Center Exportovaná velikost IPA Velikost instalace
Žádná (prázdná aplikace) 24 kB 132 kB
Analýza App Center 120 kB 377 kB
Chyba App Center 239 kB 705 kB
Distribuce App Center 163 kB 528 kB
Všechny moduly App Center 314 kB 930 kB

Chraňte tajnou hodnotu App Center

Jedná app_secret se o identifikátor vaší aplikace, je potřeba 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 vystaveno, největším rizikem je posílání špatných dat do vaší aplikace, ale nebude to mít vliv na bezpečnost dat.

Pokud chcete načíst citlivá data, musíte zadat token aplikace nebo uživatele, který se vygeneruje na straně klienta. Neexistuje způsob, jak zajistit úplné zabezpečení dat na straně klienta.

Zabezpečení své aplikace můžete zlepšit použitím proměnné prostředí pro vložení tajemství aplikace do kódu. Tajný kód tak není ve vašem kódu viditelný.