Sdílet prostřednictvím


Řešení potíží se sadou iOS 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.

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 používáte Cocoapods k integraci App Center do aplikace pro iOS a narazíte na chybu se zprávou , CocoaPods - Unable to find a specification for AppCenterspusťte příkaz pod repo update , aktualizujte místní úložiště Cocoapods a 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 musíte cocoapods aktualizovat (přeinstalovat) na pozdní verzi spuštěním příkazu [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 nezobrazují na portálu

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

  2. Ujistěte se, že spolu s start:withServices: voláním metody je zahrnutý správný tajný kód 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 odesílané do back-endu, změňte v aplikaci úroveň protokolu na Podrobné . 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 zpráva Sada App Center SDK se úspěšně nakonfigurovala a pak 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 protokoly na portálu proberou. V takovém případě nějakou dobu počkejte.

  6. Pokud chcete zkontrolovat, jestli back-end App Center přijal vaše data, přejděte ve službě Analytics do části Tok protokolu. Vaše události by se měly zobrazit po odeslání.

Chybové ukončení se na portálu nezobrazují

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

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

  3. Při chybovém ukončení App Center se protokol chybových ukončení předá až po restartování aplikace. Sada SDK také nepřeposílala žádné protokoly chybových ukončení, pokud jste připojení k ladicím programu. Ujistěte se, že ladicí program není připojený při chybovém ukončení aplikace.

  4. Pokud chcete zobrazit protokoly odesílané do back-endu, změňte v aplikaci úroveň protokolu na Podrobné . 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 zpráva Sada App Center SDK se úspěšně nakonfigurovala a pak zkontrolujte, jestli se zobrazují protokoly požadavků HTTPS.

  5. Nepoužívejte žádné jiné knihovny, které poskytují funkci zasílání zpráv o chybách. Do aplikace můžete mít integrovanou 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 na portálu proberou. V takovém případě nějakou dobu počkejte.

  8. Zkontrolujte, jestli sada SDK zjistila chybové ukončení při příštím spuštění aplikace. Můžete volat rozhraní API a zkontrolovat, jestli aplikace v poslední relaci havarovala a zobrazila upozornění. Nebo můžete zpětné volání při selhání didSucceedSendingErrorReport rozšířit a zjistit, jestli se úspěšně odeslalo na server.

  9. 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.

Upozornění, které uživatele vyzve k aktualizaci, neobsahuje řetězce, ale jenom klíče pro ně.

To znamená, že se AppCenterDistributeResources.bundle do projektu nepřidali. Ujistěte se, že jste soubor přehodili do projektu Xcode a že se zobrazí 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 chybí ve fázi sestavení, 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é indikují, že databázi nejde otevřít.

Počínaje verzí 0.11.0 sady iOS SDK používá App Center protokoly SQLite k uchová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.13.0 nebo novější.

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

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

Proč se sada SDK distribuuje 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 modulární sada SDK. Výsledkem by byla distribuce sady SDK jako několik dynamicky propojených sdílených knihoven.

V minulosti iOS nepodporuje dynamicky propojené sdílené knihovny, ale byl přidán do iOS 8, jak vysvětluje tento blogový příspěvek Landon Fuller.

App Center se ale distribuuje jako staticky propojená sdílená knihovna, která je zabalená do "tučné" falešné architektury. To znamená, že sada SDK se kvůli lepšímu výkonu propojila v době kompilace , a ne v době spuštění. Načtení několika dynamicky propojených sdílených knihoven nějakou dobu trvá.

Apple doporučuje optimalizovat spuštění aplikace tak, aby v relaci WWDC netrá více než 400 ms. K dosažení tohoto cíle konkrétně doporučují statické sdílené knihovny před dynamicky sdílenými knihovnami. Distribuce sady App Center SDK pro iOS jako staticky propojené sdílené knihovny se řídí doporučením společnosti Apple k zajištění nejlepšího výkonu a minimálního dopadu na aplikaci, která sadu SDK obsahuje.

Pokud chcete získat další informace o staticky propojených sdílených knihovnách vs. dynamicky propojených sdílených knihovnách, doporučujeme obecnou dokumentaci společnosti Apple k sadě.

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 pro simulátor iPhone. To je důvod, proč má například AppCenter.framework ke stažení 10,5 MB.

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ž ladicí sestavení.

Pro ilustraci jsme vytvořili prázdnou aplikaci Objective-C s Xcode 9.2, přidali jsme do aplikace binární soubory App Center a distribuujeme buildy verzí do iPhonu 7 s iOS 11.3.

Spustili jsme testy bez povoleného bitcode a nepoužili jsme ztenčování aplikací. Tyto techniky můžete použít k ještě většímu zmenšení binární velikosti vaší aplikace.

Následující čísla se můžou lišit a záviset na nastavení sestavení, proto je považujte za přibližný návod. To znamená, že přidání sady App Center SDK do vaší aplikace má minimální vliv na velikost binárního souboru aplikace.

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

Ochrana hodnoty tajného klíče App Center

Jedná se app_secret o identifikátor vaší aplikace, je potřeba vědět, na kterou aplikaci se provoz vztahuje, a nelze ho použít k načtení nebo úpravám existujících dat. Pokud je váš app_secret problém vystavený, největší riziko spočívá v odesílání chybný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 zajistit úplné zabezpečení dat na straně klienta.

Zabezpečení aplikace můžete zlepšit pomocí proměnné prostředí pro vložení tajného kódu aplikace do kódu. Tajný kód tak nebude v kódu viditelný.