所以我有一个沙盒应用程序,它允许用户将文件从Finder拖放到项目窗口中。我想从现有位置(即通过引用)使用这些文件,而不是将它们复制到项目文件夹中,因为用户可能已有大量的文件库。
应用运行时,这些文件完全可供读取。 (它们是.mp4,我可以在AVPlayer视图中预览它们。)>
当我保存应用程序的项目时,我会包含文件的NSURL。当应用程序重新启动并在以后重新打开项目时,文件不可用,并且控制台显示deny(1)file-read-data
-这表示该文件不可收录。 (访问被拒绝)。大概是因为文件在沙箱的外面。但是,当它们放到应用程序上时,它们were
可读。在我看来,该应用程序在首次放置时就将它们视为“用户选择的”,因此它们是可读的,但是在下一个会话中,因为它们是从NSCoder作为NSURL加载的,因此它们不被用户选择,因此无法访问!] >我的应用当前具有以下权利:com.apple.security.files.user-selected.read-onlycom.apple.security.files.user-selected.read-write
我是否需要处理授权等问题,以便以后可以重新加载文件?
所以我有一个沙盒应用程序,它允许用户将文件从Finder拖放到项目窗口中。我想从现有位置(即通过引用)使用这些文件,而不是复制...
第一次删除文件时,您需要创建并保存一个安全范围书签
,您可以在随后的应用程序启动中使用它来重新获得对该文件的访问权限。阅读Apple的深度应用沙箱