AppleScript JavaScript无法导出为仅运行

时间:2016-09-06 07:59:41

标签: javascript applescript jxa

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

1 个答案:

答案 0 :(得分:1)

两种OSA语言都按设计工作。 “仅运行”选项告诉OSA语言将脚本保存为“不可解码”的字节码,这些字节码不能[轻松]转换回源代码格式。这提供了一种保护措施,可防止其他人在分发脚本时窥探或修改该脚本,但如果您需要对其进行更改,则需要注意保留单独的可编辑副本。

AppleScript旨在支持OSA(反之亦然),因此支持此功能和其他所有OSA功能。 OTOH,JXA是一个半生不熟的混乱,并不完全支持很多OSA功能。虽然在这种情况下可能没有多少JXA可以做,因为JavaScript解释器不支持以字节码格式存储和加载脚本,并且OSA语言无法告诉脚本编辑器禁用“仅运行”复选框,如果它没有不支持它,所以JXA .scpt文件总是包含原始的,可编辑的JS源代码,即使你认为它没有。

(当然,应该记录'仅限运行'选项对JXA脚本不起作用,但是JXA的文档比它的实现更糟糕,因此毫不奇怪。)