2009-09-23 74 views
38

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

回答

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 
    
+0

get属性失败** Mail **(AppleEvent处理程序失败,数字-10000'),所以它似乎不是通用的,是否有更通用的变体来检索应用程序的脚本功能? – dualed 2014-10-27 10:35:39

2
+4

$ 199!哎哟!对于偶尔写短文本的人(比如我)来说,这太昂贵了(然后在下个星期几周内就忘记了AppleScript的所有内容)。 – 2009-09-23 21:17:13

+0

FWIW现在是99美元。 – 2016-11-01 07:54:51

9

如果你正在构建的AppleScript的任何金额,ScriptDebugger是我可以推荐的最佳工具。话虽如此......

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

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

+0

看起来Xcode 4删除了脚本调试器 - http://stackoverflow.com/a/5535604/255961 – studgeek 2012-12-03 23:44:09

48

对于非常简单的 “printf风格” 调试的需要,尽量

display dialog "my variable: " & myVar