在Mavericks上通过ssh启动时,Applescript失败并出现错误(-600)

Joh*_*tin 22 macos ssh applescript osx-mavericks

我已经尝试过寻找这个,并且已经看到其他人有类似的问题,但似乎没有找到任何答案....

我有一个AppleScript,我试图在ssh上运行,以便我可以远程控制我的mac.这在以前的OSX 10.8中有效,但从升级到10.9后似乎不再起作用.

我正在执行的命令是:

ssh <user>@mymac.local "osascript -e 'tell application \"iTunes\" to play'"
Run Code Online (Sandbox Code Playgroud)
  • 我已经设置了RSA密钥,因此ssh会话正确打开
  • 我正在连接Mac当前登录并运行的用户
  • 在脚本启动时,iTunes正在Mac上与该用户一起运行

脚本失败了,回来了:

execution error: iTunes got an error: Application isn’t running. (-600)
Run Code Online (Sandbox Code Playgroud)

同样,我之前使用过的其他一些脚本现在似乎也在10.9上以相同的错误被打破,所以这似乎与它运行在ssh上的事实有关,而不是iTunes或特定的问题应用.

我已经尝试将applescripts打包为应用程序,将它们保存在远程Mac上,然后在ssh会话中打开它们,但这也失败了:

ssh <user>@mymac.local
open "~/Desktop/Play Music.app"
Run Code Online (Sandbox Code Playgroud)

(其中'Play Music.app')是作为应用程序导出的AppleScript.

这不会在ssh会话中报告错误,但远程mac上会出现一个applescript对话框: 在此输入图像描述

我还有几个在我的Mac上使用crontab安排的脚本,这些脚本在升级后也失败了.

我认为这是小牛队的一部分安全变化,但我似乎找不到让它重新运作的方法.有没有人对此有任何解决方案?

Par*_*fna 18

Application isn’t running(-600)是一个操作系统错误.

操作系统错误是AppleScript或应用程序从Mac OS请求服务时发生的错误.它们很少见,除了报告之外,通常在脚本中没有任何关于它们的事情.

  • 哦,有一件事情可以做:重新启动机器:) (3认同)

Joh*_*tin 8

Arrrrgh!我不希望这是答案,但在尝试了几乎所有事情后,现在看起来似乎在重启后工作....我的猜测是在appleeventsd中的某些东西感到困惑(尽管重启只是在自己的appleeventsd上没有'解决任何问题).重启后osascript似乎再次表现.我仍然不相信这是完全固定的,但它似乎确实在工作......


Jor*_*dan 5

对我来说,这是Xcode中的Apple Entitlements.

特别,

com.apple.security.temporary-exception.apple事件

将其设置为数组

然后添加两个项目.

com.apple.finder

com.apple.iTunes

请参阅:当我将OS X升级到10.9时,我的AppleScript不再起作用了