如何制作一个每次打开都不需要权限的脚本

How to make a script that doesn't ask permission every time it's opened

我制作了一个使用 PhotoBooth 拍摄人物照片的苹果脚本。但是,每次我打开它时,它都会请求使用 PhotoBooth 的许可,而不是立即拍照。我已经设置了 [安全和隐私 > 隐私 > 自动化 > 允许脚本使用 PhotoBooth],但每次它仍然提示我允许 PhotoBooth。有什么方法可以在不下载任何东西或更改我的脚本的情况下解决这个问题吗?谢谢!

你的脚本保存为小程序了吗?虽然 10.14 会记住以前用户授予的权限,但每次脚本更改时都会重新提示。传统的 AppleScript 小程序实现了一种基本的持久性机制,可以在退出时保存脚本顶级变量的当前状态。此处讨论:

https://forum.latenightsw.com/t/mojave-and-applescript-applets/1563/13

避免任何持久状态的快速技巧:

script MyScript
    -- original code goes here…
end script

on run
    local tempScript
    copy MyScript to tempScript
    run tempScript
end run

如果您确实需要在运行之间保存状态(例如用户首选项),那么您要么需要对小程序进行代码签名,要么使用替代机制(例如 NSUserDefaults 通过 AppleScript-ObjC)。