web-dev-qa-db-fra.com

iPad se souvenant des autorisations de l'appareil photo après la suppression - comment effacer?

J'essaie de recréer la condition dans laquelle le code suivant renvoie AVAuthorizationStatusNotDetermined:

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];

Cependant, l'iPad semble se souvenir des autorisations de l'appareil photo même après la suppression et la réinstallation de l'application, et donc soit Autorisé soit Non Autorisé est retourné à chaque fois. Une idée comment réinitialiser les autorisations pour que NotDeterminé soit renvoyé?

Merci d'avoir lu.

53
Rogare

Vous ne pouvez pas réinitialiser l'autorisation par programmation. Si vous souhaitez réinitialiser l'autorisation, il existe deux manières:

  1. Réinitialiser l'OS
  2. Désinstallez l'application et attendez un jour

Je sais que ces deux options ne sont vraiment pas utiles pour un développeur, s'il essaie de tester quelque chose.

Il existe trois alternatives pour tester le premier scénario d'exécution de votre application sans réinitialiser l'intégralité du système d'exploitation ou attendre un jour.

Première option

Comme décrit dans ( Note technique TN2265 :

Vous pouvez atteindre ce dernier sans attendre réellement un jour en suivant ces étapes:

  • Supprimez votre application de l'appareil.
  • Éteignez complètement l'appareil et rallumez-le.
  • Accédez à Paramètres> Général> Date et heure et définissez la date à l'avance d'un jour ou plus.
  • Éteignez à nouveau complètement l'appareil et rallumez-le.

Deuxième option

Lorsque vous supprimez une application, l'iOS conserve l'autorisation de votre application mappée sur l'ID de l'ensemble de votre application, il conserve les données pour la journée. Vous pouvez donc également modifier l'ID de bundle de votre application pour le tester.

Troisième option

Comme suggéré par @rmaddy dans le commentaire, vous pouvez réinitialiser toutes les autorisations de localisation et de confidentialité: Paramètres -> Général -> Réinitialiser -> Réinitialiser l'emplacement et la confidentialité. Notez que cela réinitialisera toutes les autorisations de localisation et de confidentialité pour toutes les applications sur cet appareil.

98
Midhun MP