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

最佳答案

两种OSA语言均按设计工作。 “仅运行”选项告诉OSA语言将脚本保存为“不可反编译”字节码,该脚本无法[轻松地]转换回源代码格式。这提供了一种防止他人在分发脚本时窥探或修改该脚本的措施,尽管您确实需要注意自己保留单独的可编辑副本,以备将来需要对其进行更改时使用。

AppleScript旨在支持OSA(反之亦然),因此支持此功能以及其他所有OSA功能都很好。 OTOH,JXA有点混乱,不正确/根本不支持很多OSA功能。尽管在这种情况下,由于JavaScript解释器不支持以字节码格式存储和加载脚本,因此JXA可能无能为力,并且OSA语言无法告诉脚本编辑器禁用“仅运行”复选框(如果没有)不支持它,因此JXA .scpt文件将始终包含原始的可编辑JS源代码,即使您认为不支持。

(当然,应该记录“仅运行”选项不适用于JXA脚本,但是JXA的文档比其实现的文档更糟糕,因此在此并不奇怪。)

10-08 05:00