Write folder in Mac OS X with sandbox active

烈酒焚心 提交于 2019-12-24 13:09:35

问题


I created a small application in Xcode with Cocoa Desktop and this application has to create a folder in the current user's desktop Mac OS X

When I run the application without using the app creates a sandbox folder properly on desktop

If I use the sandbox putting right files for read / write I can not create a folder on the desktop

Does anyone know how to solve this as to send the application to the AppStore is necessary to use sandbox?


回答1:


You shouldn't just create a folder on the desktop, regardless of whether you are using the sandbox or not. Instead use NSOpenPanel configured to select folders and ask your user to provide you either a folder to use. That is compatible with both open and sandboxed apps.

In the sandbox world once you've asked the user for a folder you can create a security scoped bookmark and save it in your apps preferences; on subsequent runs you can use that bookmark to re-establish rights to access the folder without user intervention. E.g. a browser might ask once for access to a folder to store downloads and then save a security scoped bookmark to that folder.

HTH




回答2:


For some applications it just better to use some directory as default directory (Eg. Mail and Firefox uses Downloads as default directory). I guess this is your case. But, for better user experience (and for higher chances of your App's acceptance in AppStore) follow best practices - like avoiding direct Desktop access. And, mostly you will find the answer yourself if you go through these guides:

  • App Sandbox Design Guide (https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html)
  • Entitlement Key Reference (https://developer.apple.com/library/ios/DOCUMENTATION/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html)


来源:https://stackoverflow.com/questions/19255161/write-folder-in-mac-os-x-with-sandbox-active

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!