我的理解是,不允许沙盒应用访问用户未选择的任意URL。那么,为什么我的简单测试应用程序能够:
NSWorkspace.shared.open(URL(fileURLWithPath: "/Library/Application Support/App Store/adoption.plist"))
Debug和Release都可以正常工作,没有控制台消息。我的权利文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
我一定是误会了。在开发Mac上是否未选中开发人员的应用?如果是这样,我如何测试我的应用程序不包含违规行为?
答案 0 :(得分:2)
通过使用NSWorkspace,您实际上并没有打开文件。您的应用无权访问该文件的内容。
您只是在指示系统使用处理该文件的默认应用程序打开该文件。这对于沙盒应用程序是完全合法的。
例如,尝试使用NSFileHandle打开,您应该会看到错误。