AppleScript JavaScript 无法仅导出为 运行

AppleScript JavaScript Can't Export As Run Only

如果我仅将用 JavaScript 编写的 AppleScript 导出为 运行,我可以在脚本编辑器中重新打开。它还显示了所有源代码。但是,如果我仅将常规 AppleScript 导出为 运行,我将无法打开它,也无法使用其他文本编辑器查看源代码。有什么解决办法吗?谢谢!

两种 OSA 语言均按设计运行。 'run only' 选项告诉 OSA 语言将脚本保存为 "non-decompilable" 不能 [轻松] 转换回源代码格式的字节码。这提供了一种保护措施,防止其他人在脚本分发时窥探或修改该脚本,但您确实需要注意自己保留一个单独的可编辑副本,以备将来需要对其进行更改时。

AppleScript 旨在支持 OSA(反之亦然),因此支持此功能和其他所有 OSA 功能都很好。 OTOH,JXA 是一个半生不熟的烂摊子,不支持很多 OSA 功能 correctly/at。尽管在这种情况下,JXA 可能无能为力,因为 JavaScript 解释器不支持以字节码格式存储和加载脚本,并且 OSA 语言无法告诉脚本编辑器禁用 'run only' 复选框,因此 JXA .scpt 文件将 始终 包含原始的、可编辑的 JS 源代码,即使您认为它不支持。

('run only' 选项对 JXA 脚本不起作用当然应该记录在案,但是 JXA 的文档比它的实现更糟糕,所以这并不奇怪。)