访问Sandboxed macOS App中的apple菜单时出现日志错误

时间:2016-12-14 01:07:03

标签: swift xcode macos

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

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

2016-12-13 19:30:55.867046 Project-X[3430:411160] [User Defaults] Failed 
to read values in CFPrefsPlistSource<0x6100000e3f00> (Domain: 
com.apple.PowerManagement, User: kCFPreferencesAnyUser, ByHost: Yes, 
Container: (null)): accessing preferences outside an application's container 
requires user-preference-read or file-read-data sandbox access, detaching from 
cfprefsd

如果我创建了一个版本,将其作为本地应用程序保存到我的Mac并从那里运行,我看到了与macOS控制台中列出的相同的错误,此外该错误在{{下列为FAULT 1}}进程:

cfprefsd

..并且在rejecting read of { com.apple.PowerManagement, kCFPreferencesAnyUser, kCFPreferencesCurrentHost, no container, managed: 0 } from process 3384 because accessing preferences outside an application's container requires user-preference-read or file-read-data sandbox access 进程下:

kernel

如果我在没有 沙盒的情况下创建构建 ,则错误不会显示在任何位置。

我的权利设置就是这两个:

  • App Sandbox
  • com.apple.security.files.user-selected.read写

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

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

如果错误仍然存​​在,您可以使用临时权限密钥来访问有问题的 plist。

<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
        <string>/Library/Preferences/com.apple.PowerManagement.plist</string>
</array>