天哪,这个沙盒游戏让我绝望:我有一个在苹果商店上发布的应用程序(所以,理论上,它已经通过了审查……),它是一个幻灯片播放器--没什么太花哨的--用户可以将图片拖放到NSTableView上,或者通过NSOpenPanel进行选择。无论如何,我想我应该自己使用它,所以我在我的笔记本电脑上重新编译了一个副本,突然之间我不允许使用安全书签:
QuickSlide(1412) deny mach-lookup com.apple.scopedbookmarksagent.xpc每当我通过NSOpenPanel拖放图像或选择它们时,就会出现上面的内容。
我有以下权利:

我用来生成书签的代码是:
-(NSData*)genSec:(NSURL*)aURL
{
NSError *error;
NSData *secData = [aURL bookmarkDataWithOptions:(NSURLBookmarkCreationWithSecurityScope | NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess | NSURLBookmarkCreationPreferFileIDResolution)
includingResourceValuesForKeys:nil relativeToURL:nil error:&error];
if (error) {
[self setReport: [NSString stringWithFormat:@"Can't access %@ due to SandBoxing",aURL]];
return nil;
}
return secData;
}果不其然,report方法也会与控制台日志一起触发。
在我从事开发的那几个月里,它从来没有这样做过。我还在我的dev Mac Pro机箱上试用了它,尝试了使用不同签名或不使用签名的代码签名,甚至从App Store下载了它(使用两个不同的帐户尝试了两次);所有这些都得到了相同的结果。我还使用了非常方便的Receigen应用程序来检查编译包中的授权。我运行的是10.7.5。唯一能阻止它抛出错误的是,如果我在Xcode中取消选中'enable sandboxing‘选项并进行编译。
啊哈。有人能指出这个明显得令人眼花缭乱的错误吗?这个错误不知何故通过了两个测试版测试者,我和一个App Store评论员...?!
它必须是显而易见的,不是吗?
更新:我让一位同事在他的笔记本电脑上下载了一份新版本,沙盒没有问题。如果有人能说明我的安装发生了什么,我将不胜感激……
托德。
发布于 2013-03-24 23:21:17
果然,从你的权利来看,这似乎是一件令人不快的事情。您还需要添加以下内容:
com.apple.security.files.bookmarks.app-scope我不知道为什么它以前能工作,现在不能工作,但我肯定你需要声明这个安全范围书签的权利才能工作。
https://stackoverflow.com/questions/15323513
复制相似问题