在沙盒化的 macOS 应用中访问苹果菜单时记录错误日志。

32

我正在运行刚发布的macOS 10.12.2、Xcode 8.2和Swift 3。

我的所有沙盒化macOS应用程序中都出现了奇怪的错误。当我从Xcode运行应用并单击苹果菜单(左上角)时,以下错误将记录到Xcode控制台中:

2016-12-13 19:30:55.867046 Project-X[3430:411160] [用户默认设置] CFPrefsPlistSource <0x6100000e3f00>(域:com.apple.PowerManagement,用户:kCFPreferencesAnyUser,按主机:是,容器:(null))中的值读取失败:访问应用程序外部的首选项需要用户首选项读取或文件读取数据沙箱访问权限,与cfprefsd分离

如果我创建一个构建,将其保存到我的Mac作为本地应用程序并从那里运行它,我会看到与上述相同的错误在macOS控制台中列出,另外还有在cfprefsd进程下列出为FAULT的此错误:

来自进程3384的{com.apple.PowerManagement,kCFPreferencesAnyUser,kCFPreferencesCurrentHost,no container,managed: 0}的读取被拒绝,因为访问应用程序外部的首选项需要用户首选项读取或文件读取数据沙箱访问权限

...并在kernel进程下有:

SandboxViolation: Project-X(3384) deny(1) file-read-data
/Library/Preferences/com.apple.PowerManagement.plist

如果我创建一个没有沙盒的构建版本,错误就不会出现在任何地方。

我的授权设置只有这两个:

  • 应用程序沙盒
  • com.apple.security.files.user-selected.read-write

我在10.12.1中遇到了同样的问题,并认为它可能会在10.12.2中得到解决,但问题仍然存在。这很奇怪,因为只有在我运行该应用程序时单击苹果菜单才会出现。

非常感谢任何见解!!


如果一个问题涉及到Cocoa沙盒,你可能会更容易在苹果开发者论坛上得到答案。 - El Tomato
1
我遇到了同样的问题,你解决了吗? - melody5417
看这里:https://dev59.com/nloT5IYBdhLWcg3wrRKE 但是消息不太好。 - MichaelR
5
我现在已经见过这个问题几次了...重新启动电脑可以暂时解决它。 - ICL1901
从我所看到的情况来看,这个问题在10.12.4和Xcode 8.3中仍然存在 :-( - Geozeke
显示剩余4条评论
1个回答

1
如果错误仍然存在,您可以使用临时的例外授权密钥来访问相关的 plist。
<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
        <string>/Library/Preferences/com.apple.PowerManagement.plist</string>
</array>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接