2 votes

Comment désactiver la protection du dossier Documents ?

Je travaille sur un programme C++ dans Xcode, qui ouvre des fichiers dans le dossier du projet, qui se trouve dans le dossier de l'utilisateur. ~/Documents/Xcode Projects . Comme il se trouve dans mon dossier Documents, chaque fois que je lance le programme, il me demande les autorisations d'accès à mon dossier Documents, et je dois cliquer sur "oui" à chaque fois. J'ai essayé de donner explicitement l'autorisation au programme dans les paramètres, et cela fonctionne un peu, mais après environ 3 exécutions du programme, il demande à nouveau les autorisations. Puis-je simplement désactiver la protection du dossier de documents ? Comment ?

1voto

Tom Harrington Points 2112

Le moyen le plus simple est de désactiver le sandboxing pour l'application, dans les paramètres du projet Xcode sous "capabilities". Mais vous n'en aurez peut-être pas besoin.

Sinon, vous avez probablement besoin d'un signet de sécurité pour le répertoire. Lorsque vous obtenez l'accès, créez un signet à partir de l'URL du répertoire à l'aide de la commande bookmarkData(options:includingResourceValuesForKeys:relativeTo:) . Veillez à utiliser .withSecurityScope dans le options argument. Enregistrez cela dans les paramètres par défaut de l'utilisateur. Ensuite, quand vous voulez utiliser le répertoire,

  • Lire le signet à partir des valeurs par défaut de l'utilisateur
  • Initialiser l'URL en utilisant init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:) avec des options de [.withSecurityScope, .withoutUI] .
  • Appelez .startAccessingSecurityScopedResource() avant d'essayer d'utiliser l'URL.
  • Appelez .stopAccessingSecurityScopedResource() lorsque vous avez terminé avec l'URL.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X