【问题标题】:How do you step in/out/over the Xcode debugger via Applescript?您如何通过 Applescript 进入/退出/越过 Xcode 调试器?
【发布时间】:2010-09-23 22:55:13
【问题描述】:

我正在开发一个 iOS 应用程序。我在模拟器上花了很多时间,如果我不必切换回 Xcode 来访问调试器步入/退出/结束/继续控件,那将非常有帮助。有没有办法在没有 Xcode 成为焦点应用程序的情况下做到这一点?

(我知道迷你调试器,但它没有步骤控制,我更喜欢键盘快捷键。)

我认为它可能是可编写脚本的,但在 Xcode AppleScript 字典中似乎没有它的钩子。 (不过,我绝对不是 AppleScript 专家。)

我不认为 GUI 脚本会得到我想要的,因为它会切换到 Xcode 步骤并切换回来。但如果速度够快,总比没有好。

有没有办法向没有焦点的应用程序发送键盘命令?

还有其他想法吗?

【问题讨论】:

  • 我很确定即使通过 Applescript 使用 UI 界面脚本(如果您想要的控件可以在 Xcode 中访问),由于“tell application Xcode”调用,它会在您的应用程序和 Xcode 之间切换.
  • 看看 Applescript 中的系统事件字典 - 我认为它允许击键编程,这可能对你有帮助。
  • 添加关键字activate 导致tell 块的目标应用程序被带到前面,否则尽管发送了命令,但顺序保持不变。但是,我不知道在 UI 脚本的情况下这种行为是否相同。
  • 为 Xcode 使用第二个监视器,通过 Applescript 告诉它步进,然后告诉 iOS 模拟器一些东西让它回到前面,两者都在同一个脚本中。

标签: iphone xcode debugging applescript


【解决方案1】:

要查看 Xcode 的脚本支持,请启动 Script Editor,找到 Open Dictionary 命令,然后选择 Xcode。

【讨论】:

  • 我在原帖中确实提到我查了字典,找不到任何关于单步调试器的信息,但还是谢谢。
【解决方案2】:

正如其他人提到的,使用 UI 脚本。因此,要在调试器中逐步执行代码,您可以在 Applescript 中使用它:

tell application "XCode"
    activate
    tell application "System Events" to keystroke "i" using {command down, shift down}
end tell

这在 Appscript 中:

app(u'Xcode').activate()
app(u'System Events').keystroke(u'i', using=[k.command_down, k.shift_down])

【讨论】:

  • 不幸的是,这不会让我在不切换回模拟器的情况下留在模拟器中,等等。我希望有一种更受支持的方式来做到这一点。不过,感谢您的建议。
【解决方案3】:

如果不使用 UI 脚本,您似乎无法做到这一点,我尽量避免。 (不过,如果您想这样做,请参阅 Clark 的回答。)Xcode 3 和 Xcode 4.3.1 似乎就是这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-03
    • 2020-10-10
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多