Partager via


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-alertQueryRoutes.m.
  • Pour ignorer une alerte, en appuyant sur le bouton avec un titre donné, consultez /set-dismiss-springboard-alertDans 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à .