我正在使用Applescript自动部署Xcode 4中的应用程序。 我使用系统事件单击菜单栏中的菜单项。我有整个工作,但有一个怪癖。如果用户在我的脚本运行时点击其他地方,那就是XCode 4窗口不在前台,我的整个脚本都会失败。有没有办法强制Xcode在我的脚本中处于前台?
现在,如果只有Xcode 4至少与Xcode 3一样可编写代码,我就不必采用GUI自动化。
答案 0 :(得分:1)
您可以对每个activate
调用使用click
命令,以确保应用程序位于前台。这不是理想的。真的,如果您要使用系统事件来执行此类脚本输入,您必须接受用户在脚本运行时无法真正使用计算机!
如果您可以将脚本分解为需要用户输入的部分和不需要用户输入的部分,您可以向用户显示一个对话框,上面写着“您准备好继续使用脚本了吗?您必须离开电脑一会儿!“ ......然后当它完成时,“现在可以再次使用你的电脑!” 这可能会使脚本不那么突兀。只是一个建议。
答案 1 :(得分:1)
答案 2 :(得分:0)
mcgrailm和James Bedford的答案相结合。 我将菜单单击“编辑方案...”循环,直到编辑方案表变为存在。 在点击“Run without building”之前,我还必须激活应用程序。
代码:
tell application id "com.apple.dt.Xcode"
activate
end tell
tell application "System Events"
tell process "Xcode"
repeat until sheet 1 of window 2 exists
click menu item "Edit Scheme…" of menu "Product" of menu bar item "Product" of menu bar 1
tell application "Xcode"
activate
beep
end tell
end repeat
tell sheet 1 of window 2
set destination to pop up button 2 of group 1
click destination
set target to "iPad 4.3 Simulator"
click menu item target of destination's menu 1
set buildConfig to pop up button 3 of group 2
click buildConfig
click menu item "Debug" of menu 1 of buildConfig
click button "OK"
end tell
tell application "Xcode"
activate
beep
end tell
tell application id "com.apple.dt.Xcode"
activate
end tell
click menu item "Run Without Building" of menu 1 of menu item "Perform Action" of menu "Product" of menu bar item "Product" of menu bar 1
end tell
end tell