【问题标题】:Mac App Sandboxing- Updating files outside the sandboxMac App Sandboxing - 更新沙盒外的文件
【发布时间】:2014-07-18 01:21:52
【问题描述】:
我有一个要在应用商店中发布的 Mac 应用程序。
我为了让它发布我需要放入一个沙箱。
该应用程序访问用户从 openpanel 中选择的沙箱之外的 Sqlite 文件。
该应用程序在执行选择时工作正常,但在插入和更新时失败。
我记得读过一些你可以调用的函数,它可以让你对沙盒外的文件进行写访问,但我一生都记得什么是有人能启发我吗?
问候克里斯蒂安·阿里尔德·斯托尔·安徒生
【问题讨论】:
标签:
objective-c
macos
sandbox
appstore-sandbox
【解决方案1】:
在项目的授权文件中添加布尔值为 YES 的“com.apple.security.files.bookmarks.app-scope”。添加关注此链接的“With Sandboxing”部分 -
http://cocoaintheshell.com/2012/09/saving-sandboxing/
当你解析你的 URL 时,通过使用URLByResolvingBookmarkData: 方法,你会得到类似这样的 url --
file://localhost/Users/XYZ/Downloads/MyAudio.mp3?applesecurityscope=353734653735396237656239646134396537363331633063393765356234363035353666326332393b30303030303030303b3030303034534534343030303032303b636f6d2e6170706c652e6170702d73616e64626f782e726561642d77726974653b30303030303030313b30313030303030323b303030303030303030303035633134613b2f75736572732f69706874656368322f646f776e6c6f616473
更多信息搜索——“NSURLBookmarkCreationWithSecurityScope”