Upozornění ochrany osobních údajů v iOSu

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

Tento článek se nezabývá upozorněními vytvořenými UIAlertViewController v aplikacích. Mohou být zpracovány přímo příslušnými testovacími dotazy. Tento článek je spíše o upozorněních generovaných systémem iOS, které standardní dotazy uživatelského rozhraní nezvládnou.

Během spouštění aplikace pro iOS může operační systém zobrazovat upozornění uživateli v různých časech, když se aplikace pokusí aktivovat nabízená oznámení Apple, služby zjišťování polohy, kontakty, mikrofon nebo kamera zařízení a tak dále, aby požádala o oprávnění. Tato automaticky otevíraná okna se někdy označují jako výstrahy, systémová upozornění, automaticky otevíraná okna, upozornění springboardu nebo dialogová okna ochrany osobních údajů. Když jsou tyto žádosti přijaty, stav přijetí se zachová, takže uživatel obvykle toto upozornění pro danou aplikaci na zařízení znovu neuvidí.

Při první instalaci aplikace bude potřeba tato upozornění řešit. Testy spuštěné místně nemusí najít výstrahy, pokud byly požadavky dříve přijaty.

Když se testy spustí v App Center Test, poběží na nedotčených zařízeních a při pokusu aplikace o přístup k chráněným službám nebo funkcím se aktivují výstrahy.

Zpracování těchto upozornění v app center test se liší podle testovací architektury.

Xamarin.UITest a Calabash iOS

Xamarin.UITest a Calabash automaticky přijímají upozornění, o kterých vědí. Známé výstrahy jsou založené na porovnávání textu. Pokud máte případ, kdy se upozornění SpringBoardu nezavdá, vyhledejte název upozornění v DeviceAgent.json souborech.

$ cd DeviceAgent.iOS
$ git pull
$ find Server/Resources.xcassets -name "alerts.json" -exec grep -q "to access your location" {} \; -print
Server/Resources.xcassets/springboard-alerts/springboard-alerts-en_GB.dataset/alerts.json
Server/Resources.xcassets/springboard-alerts/springboard-alerts-en_AU.dataset/alerts.json
Server/Resources.xcassets/springboard-alerts/springboard-alerts-en.dataset/alerts.json

Pokud vaše aplikace obsahuje výstrahy, které nejsou v daném souboru, přejděte na ? > Pokud ho chcete přidat, kontaktujte podporu na webu App Center. Pokud už v souboru jsou, může být nějaký problém s konfigurací zařízení, který by měl být nahlášený jako chyba testovací podpoře App Center.

Poznámka

Můžete si všimnout DismissSpringboardAlerts() v rozhraní Xamarin.UITest API. DismissSpringboardAlerts() je metoda, kterou Xamarin.UITest interně používá. Obecně není potřeba volat DismissSpringboardAlerts() testovací kód uživatele.

XCUITest versus UIAutomation

Xamarin.UITest a Calabash používají pro interakci se zařízeními jednu ze dvou testovacích architektur Apple.

  • Pokud testy spouštíte místně, pak je rozhraní Apple Test XCUITest.
  • Pokud testy spouštíte v App Center Test s iOSem 10 nebo novějším, pak je rozhraní Apple Test XCUITest.
  • Pokud testy spouštíte v App Center Test s verzemi iOS staršími než iOS 10, pak používáte UIAutomation společnosti Apple.

Testování pomocí UIAutomation vyžaduje zpoždění aplikace před prvním upozorněním, aby rozhraní UIAutomation společnosti Apple převzalo kontrolu nad testem aplikace. Pokud se jedná o problém vaší aplikace a testů, přečtěte si téma Správa upozornění ochrany osobních údajů: Služby zjišťování polohy, APNS, Kontakty.

Calabash iOS

Kromě automatického zpracování výstrah, jako je Xamarin.UITest, calabash také umožňuje správu výstrah ručně.

  • Pokud chcete zkontrolovat, jestli se upozornění zobrazuje, a dotazovat se na jeho atributy, přečtěte si téma /springboard-alertQueryRoutes.m.
  • Informace o zavření upozornění klepnutím na tlačítko s daným názvem najdete v tématu /set-dismiss-springboard-alertGestureRoutes.m.
  • Pokud chcete zavřít známá upozornění a přepnout automatické zavření, podívejte se /dismiss-springboard-alerts na a /set-dismiss-springboard-alerts-automatically v MetaRoutes.m. Při zavolání /dismiss-spring-board-alerts dojde k výjimce a narazí na neznámé upozornění.

Tento fragment kódu Calabash pro iOS ukazuje, jak používat tyto metody:

...
# Turn off automatic alert dismissal
device_agent.dismiss_springboard_alerts_manually!

# Do whatever triggers the alert, then wait for the alert
# that may or may not appear.
begin
  device_agent.wait_for_springboard_alert(10) # timeout is optional
  device_agent.dismiss_springboard_alert("OK")
rescue RuntimeError
   # Alert didn't appear, so there's nothing to do
end
...

# Turn automatic dismiss back on
dismiss_springboard_alerts_automatically!

Appium

Informace o upozornění najdete v dokumentaci k Appiu.

XCUITest

Projděte si dokumentaci Apple k monitorování přerušení uživatelského rozhraní.

Získání nápovědy

Kdykoli nás můžete kontaktovat prostřednictvím ikony ? v pravém horním rohu. Neposkytujeme nepřetržitou podporu, ale odpovíme, jakmile to půjde.

Pokud potřebujete pomoc s testovacím spuštěním, přejděte na příslušný testovací běh, zkopírujte adresu URL z prohlížeče a vložte ji do konverzace podpory. Adresa URL testovacího běhu vypadá nějak takto https://appcenter.ms/orgs/OrgName/apps/App-Name/test/runs/77a1c67e-2cfb-4bbd-a75a-eb2b4fd0a747: .