Alertes de confidentialité iOS
Important
Visual Studio App Center doit être mis hors service le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à ce qu’il soit entièrement mis hors service, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager de migrer.
En savoir plus sur les chronologies et les alternatives de support.
Notes
Cet article ne traite pas des alertes créées avec UIAlertViewController
dans les applications. Ils peuvent être gérés directement par des requêtes de test appropriées. Cet article concerne plutôt les alertes générées par iOS que les requêtes d’interface utilisateur standard ne peuvent pas gérer.
Pendant l’exécution d’une application iOS, le système d’exploitation peut afficher des alertes à l’utilisateur à différents moments lorsque l’application tente d’activer ou d’accéder aux notifications Push Apple, aux services de localisation, aux contacts, au microphone ou à l’appareil photo de l’appareil, et ainsi de suite, pour demander l’autorisation. Ces fenêtres contextuelles sont parfois appelées alertes, alertes système, fenêtres contextuelles système, alertes springboard ou boîtes de dialogue de confidentialité. Lorsque ces demandes sont acceptées, cet état d’acceptation est persistant, de sorte que l’utilisateur ne voit généralement pas cette alerte pour cette application sur l’appareil.
Lorsque l’application est installée pour la première fois, ces alertes doivent être traitées. Les tests en cours d’exécution locale peuvent ne pas trouver d’alertes si les demandes ont été précédemment acceptées.
Lorsque vos tests s’exécutent dans App Center Test, ils s’exécutent sur des appareils vierges et des alertes sont déclenchées lorsque l’application tente d’accéder à des services ou fonctionnalités protégés.
La gestion de ces alertes dans App Center Test varie selon l’infrastructure de test.
Xamarin.UITest et Calabash iOS
Xamarin.UITest et Calabash acceptent automatiquement les alertes qu’ils connaissent. Les alertes connues sont basées sur la correspondance de texte. Si vous avez un cas où une alerte SpringBoard n’est pas ignorée, recherchez le titre de l’alerte dans les fichiers DeviceAgent.json.
$ 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
Si votre application contient des alertes qui ne figurent pas dans ce fichier, accédez à ? > Contactez le support technique sur le site web app Center pour les ajouter. S’ils se trouvent déjà dans ce fichier, il se peut qu’il y ait un problème avec la configuration de l’appareil, qui doit être signalé comme un bogue au support de test d’App Center.
Notes
Vous pouvez le remarquer DismissSpringboardAlerts()
dans l’API Xamarin.UITest. DismissSpringboardAlerts()
est une méthode que Xamarin.UITest utilise en interne. Il n’est généralement pas nécessaire d’appeler DismissSpringboardAlerts()
le code de test utilisateur.
XCUITest et UIAutomation
Xamarin.UITest et Calabash utilisent l’une des deux infrastructures de test Apple pour interagir avec les appareils.
- Si vous exécutez des tests localement, apple Test Framework est XCUITest.
- Si vous exécutez des tests dans App Center Test, avec iOS 10 ou version ultérieure, apple Test Framework est XCUITest.
- Si vous exécutez des tests dans App Center Test, avec des versions iOS antérieures à iOS 10, vous utilisez UIAutomation d’Apple.
Le test avec UIAutomation nécessite un délai dans l’application avant la première alerte pour que l’infrastructure UIAutomation d’Apple prenne le contrôle de l’application en cours de test. S’il s’agit d’un problème pour votre application et vos tests, consultez Gestion des alertes de confidentialité : Services de localisation, APNS, Contacts.
Calabash iOS
En plus de gérer automatiquement les alertes comme Xamarin.UITest, Calabash permet également de gérer les alertes manuellement.
- Pour case activée si une alerte s’affiche et interroger ses attributs, consultez
/springboard-alert
QueryRoutes.m. - Pour ignorer une alerte, en appuyant sur le bouton avec un titre donné, consultez
/set-dismiss-springboard-alert
Dans GestureRoutes.m. - Pour ignorer les alertes connues et activer le renvoi automatique, consultez
/dismiss-springboard-alerts
et/set-dismiss-springboard-alerts-automatically
dans MetaRoutes.m. Une exception est levée si/dismiss-spring-board-alerts
est appelé et rencontre une alerte inconnue.
Cet extrait de code Calabash iOS montre comment utiliser ces méthodes :
...
# 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
Consultez la documentation d’Appium pour Alert.
XCUITest
Consultez la documentation Apple pour la surveillance des interruptions d’interface utilisateur.
Obtenir de l’aide
Vous pouvez toujours nous contacter via l’icône ? dans le coin supérieur droit. Nous ne fournissons pas de support 24/7, mais répondrons dès que possible.
Si vous souhaitez obtenir de l’aide sur une série de tests, accédez à la série de tests en question, puis copiez l’URL à partir de votre navigateur et collez-la dans la conversation de support. L’URL d’une série de tests ressemble https://appcenter.ms/orgs/OrgName/apps/App-Name/test/runs/77a1c67e-2cfb-4bbd-a75a-eb2b4fd0a747à .