是否可以自动对 AppleScript 应用程序进行代码签名?

Is it possible to automatically code sign an AppleScript app?

我正在创建多个 AppleScript 应用程序,每个应用程序都将演示文稿 HTML 捆绑到一个图标中并使用 Safari 打开它。我想对生成的 Presentation.app 文件进行代码签名,以防止 Gatekeeper 对其进行标记。

我知道我可以手动打开每个 Presentation.app 并重新导出,选择代码签名选项。我希望能够自动执行此步骤。

每个 Presentation.app 都是由语言和市场的组合构建的,并通过自动过程组装 - 它本身是用 AppleScript 编写的。因此,理想的解决方案是使用 AppleScript 代码自动签署每个 Presentation.app 我的开发者 ID。

到目前为止,我已经尝试在脚本编辑器中记录操作,但结果为零。我研究了脚本编辑器字典,看看是否有支持这一点的选项。我发现最接近的是脚本编辑器套件中的保存动词,但它不显示代码签名参数。

使用命令行codesign程序可以做到这一点。类似于:

codesign -s "Developer ID Application: <use your identity>" Presentation.app

在 AppleScript 中,用 do shell script 调用它,如下所示:

do shell script "codesign -s \"Developer ID Application: <use your identity>\" Presentation.app"

可能需要在签名前删除扩展属性:

do shell script "xattr -cr Presentation.app"