【发布时间】:2022-03-19 15:20:31
【问题描述】:
您有哪些调试 AppleScript 的技巧和窍门?有调试器吗?如果不是,插入“打印”以显示变量值的最佳方法是什么?有没有办法“漂亮打印”更复杂的数据结构?
【问题讨论】:
-
你试过
log命令吗?我不知道它什么时候可用。
标签: debugging applescript
您有哪些调试 AppleScript 的技巧和窍门?有调试器吗?如果不是,插入“打印”以显示变量值的最佳方法是什么?有没有办法“漂亮打印”更复杂的数据结构?
【问题讨论】:
log命令吗?我不知道它什么时候可用。
标签: debugging applescript
最新版本的 xcode 可让您创建 AppleScript 应用程序但由于 Apple 已停止支持在 xcode 中调试 AppleScript。
后备:对于简单的“printf 样式”调试,您可以使用:
display dialog "my variable: " & myVar
【讨论】:
从脚本编辑器运行时,获取对象的属性(见下文)以了解失败的原因。您还可以使用类词来查看属性是什么类。应用程序的字典是一个很好的起点。
一种通常会帮助我的技术(我有时仍然会这样做)是告诉一些东西来返回它们的属性,如下所示:
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
【讨论】:
get properties 对 Mail (AppleEvent handler failed." number -10000) 失败,所以它似乎不是通用的,是否有更通用的变体来检索应用程序的脚本功能?跨度>
如果您要构建任意数量的 AppleScript,ScriptDebugger 是我推荐的最佳工具。说了这么多……
Xcode 是一个免费选项,可用于开发 AppleScript,并可以使用调试器逐步执行代码。该功能主要包含在内,因此您可以使用 AppleScript Studio 构建 Cocoa 应用程序,但您可以将其用于任何 AppleScript 开发。
如果您正在寻找更简单的东西,您可以查看Smile,它并不是真正的调试器,但确实提供了标准脚本编辑器中没有的对调试有用的功能。
【讨论】:
如果显示对话框太小,您可以使用 TextEdit 显示大返回:
tell application "TextEdit"
activate
make new document
set text of document 1 to myResults
end tell
【讨论】:
要获取窗口名称和其他 GUI 元素和属性,我发现 UI Browser 非常宝贵。您可以使用它来检查您想要使用 AppleScript 控制的任何内容,以找到您想要控制的元素的名称
不是免费的,但对于认真的开发人员来说很值得。
【讨论】:
【讨论】: