iOS-Datenschutzwarnungen
Wichtig
Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie eine Migration in Betracht ziehen können.
Hinweis
In diesem Artikel werden keine Warnungen behandelt, die mit UIAlertViewController
in Anwendungen erstellt wurden. Sie können direkt von geeigneten Testabfragen verarbeitet werden. Vielmehr geht es in diesem Artikel um Warnungen, die von iOS generiert werden und die standardmäßige UI-Abfragen nicht verarbeiten können.
Während eine iOS-Anwendung ausgeführt wird, kann das Betriebssystem dem Benutzer zu verschiedenen Zeiten Warnungen anzeigen, wenn die Anwendung versucht, Apple-Pushbenachrichtigungen, Standortdienste, Kontakte, das Gerätemikrofon oder die Kamera usw. zu aktivieren oder darauf zuzugreifen, um die Berechtigung anzufordern. Diese Popups werden manchmal auch als Warnungen, Systemwarnungen, System-Popups, Springboardwarnungen oder Datenschutzdialoge bezeichnet. Wenn diese Anforderungen akzeptiert werden, wird dieser Akzeptanzzustand beibehalten, sodass der Benutzer diese Warnung für diese App auf dem Gerät normalerweise nicht mehr sieht.
Wenn die App zum ersten Mal installiert wird, müssen diese Warnungen behoben werden. Lokal ausgeführte Tests finden möglicherweise keine Warnungen, wenn die Anforderungen zuvor akzeptiert wurden.
Wenn Ihre Tests in App Center Test ausgeführt werden, werden sie auf fehlerfreien Geräten ausgeführt, und Warnungen werden ausgelöst, wenn die Anwendung versucht, auf geschützte Dienste oder Features zuzugreifen.
Die Behandlung dieser Warnungen im App Center-Test variiert je nach Testframework.
Xamarin.UITest und Calabash iOS
Xamarin.UITest und Calabash akzeptieren automatisch Warnungen, die ihnen bekannt sind. Bekannte Warnungen basieren auf Textabgleichen. Wenn sie einen Fall haben, in dem eine SpringBoard-Warnung nicht geschlossen wird, suchen Sie in den DeviceAgent.json-Dateien nach dem Warnungstitel.
$ 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
Wenn Ihre Anwendung Warnungen enthält, die nicht in dieser Datei enthalten sind, wechseln Sie zu ? > Wenden Sie sich an den Support auf der App Center-Website, um sie hinzuzufügen. Wenn sie sich bereits in dieser Datei befinden, liegt möglicherweise ein Problem mit der Gerätekonfiguration vor, das als Fehler an den App Center-Testsupport gemeldet werden sollte.
Hinweis
Sie können es in der Xamarin.UITest-API bemerken DismissSpringboardAlerts()
. DismissSpringboardAlerts()
ist eine Methode, die Xamarin.UITest intern verwendet. Es ist im Allgemeinen nicht erforderlich, den Benutzertestcode aufzurufen DismissSpringboardAlerts()
.
XCUITest im Vergleich zu UIAutomation
Xamarin.UITest und Calabash verwenden eines von zwei Apple-Testframeworks für die Interaktion mit den Geräten.
- Wenn Sie Tests lokal ausführen, ist das Apple Test Framework XCUITest.
- Wenn Sie Tests in App Center Test mit iOS 10 oder höher ausführen, ist das Apple Test Framework XCUITest.
- Wenn Sie Tests in App Center Test mit iOS-Versionen ausführen, die älter als iOS 10 sind, verwenden Sie die UIAutomation von Apple.
Das Testen mit UIAutomation erfordert eine Verzögerung in der Anwendung, bevor die erste Warnung auftritt, damit das UIAutomation-Framework von Apple die Kontrolle über die getestete Anwendung übernimmt. Wenn dies ein Problem für Ihre Anwendung und Tests ist, lesen Sie Verwalten von Datenschutzwarnungen: Standortdienste, APNS, Kontakte.
Calabash iOS
Neben der automatischen Behandlung von Warnungen wie Xamarin.UITest ermöglicht Calabash auch die manuelle Verwaltung von Warnungen.
- Informationen zum Überprüfen, ob eine Warnung angezeigt wird, und deren Attribute finden Sie
/springboard-alert
unter QueryRoutes.m. - Informationen zum Schließen einer Warnung durch Berühren der Schaltfläche mit einem bestimmten Titel finden Sie
/set-dismiss-springboard-alert
unter GestureRoutes.m. - Informationen zum Verwerfen bekannter Warnungen und zum Umschalten der automatischen Entlassung finden Sie unter
/dismiss-springboard-alerts
und/set-dismiss-springboard-alerts-automatically
in MetaRoutes.m. Eine Ausnahme wird ausgelöst, wenn/dismiss-spring-board-alerts
aufgerufen wird und auf eine unbekannte Warnung gestoßen wird.
Dieser Calabash iOS-Codeausschnitt zeigt, wie Sie diese Methoden verwenden:
...
# 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
Weitere Informationen finden Sie in der Appium-Dokumentation für Warnungen.
XCUITest
Weitere Informationen finden Sie in der Apple-Dokumentation zum Überwachen von Unterbrechungen der Benutzeroberfläche.
Hilfe
Sie können uns jederzeit über das Symbol ? in der oberen rechten Ecke kontaktieren. Wir bieten keinen 24/7-Support, antworten aber so schnell wie möglich.
Wenn Sie Hilfe bei einem Testlauf benötigen, navigieren Sie zum betreffenden Testlauf, kopieren Sie die URL aus Ihrem Browser, und fügen Sie sie in die Supportunterhaltung ein. Eine Testlauf-URL sieht etwa wie https://appcenter.ms/orgs/OrgName/apps/App-Name/test/runs/77a1c67e-2cfb-4bbd-a75a-eb2b4fd0a747folgt aus.