如何调试AppleScript?

时间:2009-09-23 14:22:48

标签: debugging applescript

您有哪些提示和技巧来调试AppleScript?有调试器吗?如果没有,插入“打印”以显示变量值的最佳方法是什么?有没有办法“漂亮地打印”更复杂的数据结构?

5 个答案:

答案 0 :(得分:53)

对于非常简单的“printf style”调试需求,请尝试

display dialog "my variable: " & myVar

答案 1 :(得分:16)

  1. 脚本调试程序
  2. 的XCode
  3. 从脚本编辑器运行时,获取对象的属性(参见下文)以了解其失败的原因。您还可以使用类词来查看属性是什么类。应用程序的词典是一个很好的起点。

    通常会帮助我的一种技巧(我有时会这样做)就是告诉某些东西返回它们的属性,如下所示:

    tell application "TextEdit"
      get properties
    end tell
    
  4. 日志语句和Console.app,用于调试运行时事件。 (下面)。您可以通过设置属性来打开和关闭调试

    以下是我用于跟踪运行时错误,小程序,邮件规则以及您拥有的内容的技术。当它失败时,错误号和消息将记录到TestDrive.log中,并且可以在Console.app的左边缘找到...

    tell application "TextEdit"
        try
            set a to text 0 of its name
        on error e number n
            my logit("OOPs: " & e & " " & n, "TestDrive")
        end try
    end tell
    
    to logit(log_string, log_file)
        do shell script ¬
            "echo `date '+%Y-%m-%d %T: '`\"" & log_string & ¬
            "\" >> $HOME/Library/Logs/" & log_file & ".log"
    end logit
    

答案 2 :(得分:9)

如果您正在构建任何数量的AppleScripts,ScriptDebugger是我可以推荐的最佳工具。说完了......

Xcode是一个免费选项,可用于开发AppleScripts,并可以使用调试器逐步执行代码。该功能主要包含在内,因此您可以使用AppleScript Studio构建Cocoa应用程序,但您可以将其用于任何AppleScript开发。

如果您正在寻找更简单的东西,您可以查看Smile,它不是真正的调试器,但提供了有助于调试的功能,这些功能在标准脚本编辑器中不可用。

答案 3 :(得分:6)

如果显示对话框太小,您可以使用TextEdit显示大回报:

tell application "TextEdit"
    activate
    make new document
    set text of document 1 to myResults
end tell

来源http://forums.macrumors.com/showthread.php?t=446171

答案 4 :(得分:0)

为了获得窗口和其他 GUI 元素和属性的名称,我发现 UI Browser 非常宝贵。你可以用它来检查你想用 AppleScript 控制的任何东西,以找到你想控制的元素的名称

不是免费的,但对于认真的开发者来说很值得。