リリースされたばかりの macOS 10.12.2、Xcode 8.2、Swift 3 を実行しています。
サンドボックス化されたmacOSアプリすべてで奇妙なエラーが発生します。Xcodeからアプリを実行し、Appleメニュー(左上)をクリックすると、Xcodeのコンソールに次のエラーが記録されます。
2016-12-13 19:30:55.867046 Project-X[3430:411160] [ユーザーデフォルト] CFPrefsPlistSource<0x6100000e3f00> (ドメイン: com.apple.PowerManagement、ユーザー: kCFPreferencesAnyUser、ByHost: Yes、コンテナ: (null)) の値の読み取りに失敗しました: アプリケーションのコンテナ外の設定にアクセスするには、cfprefsd から切り離されたユーザー設定読み取りまたはファイル読み取りデータ サンドボックス アクセスが必要です
ビルドを作成し、それをローカル アプリとして Mac に保存してそこから実行すると、macOS コンソールに上記と同じエラーが表示され、さらにプロセスの下に FAULT として次のエラーも表示されますcfprefsd
。
アプリケーションのコンテナ外の設定にアクセスするには、ユーザー設定の読み取りまたはファイル読み取りデータのサンドボックス アクセスが必要なため、プロセス 3384 からの { com.apple.PowerManagement、kCFPreferencesAnyUser、kCFPreferencesCurrentHost、コンテナなし、管理対象: 0 } の読み取りを拒否します。
..そしてkernel
プロセスの下にこれがあります:
SandboxViolation: Project-X(3384) deny(1) file-read-data
/Library/Preferences/com.apple.PowerManagement.plist
ビルドを作成するとそれなしサンドボックス化により、エラーはどこにも表示されなくなります。
私の権限設定は次の 2 つです。
- アプリサンドボックス
- com.apple.security.files.ユーザーが選択した読み取り/書き込み
10.12.1 でも同じ問題が発生し、10.12.2 で解決されるかもしれないと思っていましたが、それでも解決しません。アプリの実行中に Apple メニューをクリックした場合にのみ発生するため、奇妙に特殊です。
ご意見をいただければ幸いです。
ベストアンサー1
エラーが解決しない場合は、一時的な例外権限キーを使用して、問題の plist にアクセスできます。
<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
<string>/Library/Preferences/com.apple.PowerManagement.plist</string>
</array>