Ios 脚本Xcode:在AppleScript中单击菜单项而不激活窗口?
我有一个通过XCode以编程方式启动iOS项目的简单脚本:Ios 脚本Xcode:在AppleScript中单击菜单项而不激活窗口?,ios,xcode,applescript,Ios,Xcode,Applescript,我有一个通过XCode以编程方式启动iOS项目的简单脚本: on run project_loc tell application "Xcode" open project_loc activate end tell tell application "System Events" tell application process "Xcode" click menu item "Run" of menu 1 of menu bar item "
on run project_loc
tell application "Xcode"
open project_loc
activate
end tell
tell application "System Events"
tell application process "Xcode"
click menu item "Run" of menu 1 of menu bar item "Product" of menu bar 1
end tell
end tell
end run
这工作得很好,只是它将焦点切换到Xcode,这并不理想,因为我试图将其作为方案的一部分,该方案会自动重新编译并重新启动,以响应相关文件中的任何更改。有没有办法在不关注Xcode窗口的情况下实现这一点 您不能使用GUI脚本单击菜单项而不切换到应用程序,就像您自己不切换到应用程序而单击它一样–应用程序的菜单栏只有在具有焦点时才可用(或者,至少是最后一个具有焦点的应用程序–它不一定需要焦点窗口)。但是,您可以通过切换回脚本中以前关注的应用程序来减轻切换的干扰:
on run
tell application "System Events" to set focusedAppID to bundle identifier of first application process whose frontmost is true
<your code here>
tell application id focusedAppID to activate
end run
运行时
告诉应用程序“系统事件”将focusedAppID设置为最前端为true的第一个应用程序进程的绑定标识符
告诉应用程序id focusedAppID激活
终点
但是…Xcode本身是一个可编写脚本的应用程序。如果您只需要构建项目,为什么不使用
tell application "Xcode" to build <target / project>
告诉应用程序“Xcode”生成
这将为您节省大量的GUI脚本编写工作—请查看Xcode AppleScript字典(默认情况下未添加—只需将Xcode.app拖动到AppleScript编辑器中的库窗口即可)。
将focusedAppID设置为绑定最前端为true的第一个应用程序进程的标识符。
我不明白这意味着什么