iTunes脚本与脚本桥梁和沙盒

问题描述:

我有一个应用程序告诉iTunes使用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> 

我已经测试了没有应用沙盒和代码的作品完美。虽然沙盒虽然播放列表代码工作正常,但播放轨道确实不是工作。我检查了控制台应用程序,似乎没有记录涉及沙箱和我的应用程序。

起初我以为我可能在我的权利文件中缺少一些access-group,但后来我认为这没有意义,因为我已经有playback之一。我无法在网上找到iTunes的任何访问组列表(我甚至尝试使用sdef从iTunes获取属性列表并搜索'access-group',但什么都没找到 - 它不在那里),所以我不能确认我是否需要更多。

总结一下,为什么沙盒阻止了它的工作?

+0

你确定你的应用程序将由Apple提交吗? – 2013-05-08 17:27:37

+0

@NikolaiNagorny你是什么意思?我是一个提交我的应用程序的MAS – Alex 2013-05-08 17:50:52

+0

我想使用脚本桥,但我不确定苹果提交我的应用程序使用这种技术... – 2013-05-08 18:30:55

没关系。事实证明,我呼吁的SBElementArrayfilteredArrayUsingPredicate:找出我想播放的曲目和莫名其妙被搞乱的东西了。现在我使用方法objectWithName:,它的工作原理。