ScriptingBridge フレームワークを使用して音楽を再生するように iTunes に指示するアプリがあります。このアプリは、プレイリストまたは特定のトラックを再生するように iTunes に指示します。アプリもサンドボックス化されています。
プレイリストを再生するために、ここに私が持っているものがあります:
iTunesPlaylist* playlist = ...
[playlist playOnce: YES];
トラックを再生する方法も非常に簡単です。
iTunesTrack* track = ...
[track playOnce: YES];
私のアプリはサンドボックス化されているため、資格ファイルに次の行があります。
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.iTunes</key>
<array>
<string>com.apple.iTunes.library.read</string> // I also have this to read the playlists/tracks the user has on his library
<string>com.apple.iTunes.playback</string>
</array>
</dict>
アプリのサンドボックスを使用せずにテストしたところ、コードは完全に機能します。サンドボックスを使用すると、プレイリスト コードは正常に機能しますが、トラックの再生は機能しません。コンソール アプリで確認しましたが、sandboxd とアプリに関するログは何も記録されていないようです。
最初access-group
は、資格ファイルにいくつか欠けているのではないかと思っていましたが、すでに資格ファイルを持っているので意味がないと思いましたplayback
。そして、ネット上でiTunesのアクセスグループのリストを見つけることができませんでした(sdefを使用してiTunesからプロパティリストを取得し、「アクセスグループ」を検索しようとしましたが、何も見つかりませんでした-そこにありません)ので、できませんでしたさらに必要かどうかを確認します。
要約すると、サンドボックスがこれを妨げているのはなぜですか?