Estoy leyendo sobre el sandboxing de la aplicación Mac y me pregunto qué ocurre exactamente cuando un usuario selecciona una carpeta en un NSOpenPanel o NSSavePanel. El “App Sandbox Design Guide” da el siguiente ejemplo:¿A qué tiene acceso una aplicación de espacio limitado de Mac cuando el usuario selecciona una carpeta?
When a user of your app specifies they want to use a file or a folder, the system adds the associated path to your app’s sandbox. Say, for example, a user drags the
~/Documents
folder onto your app’s Dock tile (or onto your app’s Finder icon, or into an open window of your app), thereby indicating they want to use that folder. In response, the system makes the~/Documents
folder, its contents, and its subfolders available to your app.
No me queda claro lo que se entiende por el “contenido” aquí. ¿Esto se limita a ver qué archivos están en la carpeta sin poder leer lo que hay en esos archivos? ¿O simplemente significa que la aplicación podrá leer cualquier archivo que esté (recursivamente) dentro de la carpeta Documentos (para que pueda, por ejemplo, leer ~/Documents/Foo.txt
y ~/Documents/Bar/Baz.txt
)? ¿Y qué ocurre con las operaciones de escritura (escribir en un archivo existente, eliminar uno o crear un nuevo archivo o carpeta)?
Además, si tiene habilitados los marcadores, puede usar - [NSURL bookmarkDataWithOptions: includingResourceValuesForKeys: relativeToURL: error:] para guardar estos permisos para más adelante. Consulte https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16. – AriX