我已经更改了我的 Java 应用程序以以不同的方式与 iTunes 交互,但仍然使用 applescript,但是虽然它对我有用,但它似乎给我的很多用户带来了问题,一个用户用户报告了这个错误出现了很多次
10/20/13 12:37:44.553 PM iTunes[74256]: AppleEvents/sandbox: Returning
errAEPrivilegeError/-10004 and denying dispatch of event rdwr/writ from process
'Jaikoz'/0x0-0x413413, pid=19717, because it is not entitled to send an AppleEvent
to this process.
但我不明白为什么他会收到这个错误而我不是,有什么想法吗?
苹果脚本
tell application "iTunes"
set thePath to (POSIX file "/tmp/jaikoz_itunes_model.txt")
set fileref to open for access (thePath) with write permission
set eof fileref to 0
set mainLibrary to library playlist 1
repeat with nexttrack in (get every track of mainLibrary)
if (class of nexttrack is file track) then
try
set trackname to name of nexttrack
set loc to location of nexttrack
set locpath to POSIX path of loc
set persistid to persistent ID of nexttrack
set nextline to trackname & "::" & locpath & "::" & persistid
write nextline & "\n" as "utf8" to fileref starting at eof
end try
end if
end repeat
end tell
return ""
更新 我也刚刚意识到我改变了与 iTunes 交谈的方式,我曾经使用
osascript -a with Runtime.getRuntime().exec()
但现在做
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("AppleScript");
这可能是问题吗?
更新 2 这是一个纯粹的 Applescript 问题,因为当我从 Applescript 编辑器运行时会发生类似的错误
25/10/2013 10:39:39.816 iTunes[3366]: AppleEvents/sandbox: Returning
errAEPrivilegeError /-10004 and denying dispatch of event rdwr/writ
from process 'AppleScript Editor'/0x0-0x24d24d, pid=12717, because
it is not entitled to send an AppleEvent to this process.
问题毕竟不是无法访问 iTunes,而是 iTunes 每次写入文件(或打开/关闭文件)时都会抱怨 - 为什么会这样?