您有哪些提示和技巧来调试AppleScript?有调试器吗?如果没有,插入“打印”以显示变量值的最佳方法是什么?有没有办法“漂亮地打印”更复杂的数据结构?
答案 0 :(得分:53)
对于非常简单的“printf style”调试需求,请尝试
display dialog "my variable: " & myVar
答案 1 :(得分:16)
从脚本编辑器运行时,获取对象的属性(参见下文)以了解其失败的原因。您还可以使用类词来查看属性是什么类。应用程序的词典是一个很好的起点。
通常会帮助我的一种技巧(我有时会这样做)就是告诉某些东西返回它们的属性,如下所示:
tell application "TextEdit"
get properties
end tell
日志语句和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
答案 4 :(得分:0)
为了获得窗口和其他 GUI 元素和属性的名称,我发现 UI Browser 非常宝贵。你可以用它来检查你想用 AppleScript 控制的任何东西,以找到你想控制的元素的名称
不是免费的,但对于认真的开发者来说很值得。