为什么我的 Applescript 脚本在 ScriptEditor 中执行,而不是作为应用程序执行?

问题描述 投票:0回答:2

Applescript 脚本在 ScriptEditor 中执行,但不作为应用程序执行。

我已经使用 AppleScript 几年了,直到最近才遇到这种情况。

以下代码示例反映了我的情况。我将此代码输入到 ScriptEditor 中,它运行良好。当 Safari 窗口可见时,会显示该对话框;当该窗口不可见时,会显示 MacOS 警报。

set appName to “Safari”
tell application "System Events"
    set winPos to position of first window of process appName
    display dialog "Test was successful”
end tell

我将代码导出为名为“test”的应用程序,然后运行该应用程序。初始运行提示我将应用程序名称输入到系统设置的隐私和安全部分的辅助功能列表中。完成后,我再次运行该应用程序并出现此错误...... 

"test is not allowed assistive access.
System Events got an error: test is not allowed assistive access. (-1719)"

在此输入图片描述

无论 Safari 窗口可见还是不可见,都会显示相同的错误。 然后我注释掉“set winPos…”行并再次导出为应用程序。应用程序执行没有错误。

进一步测试发现,任何尝试在系统事件告诉中执行系统事件操作的代码在编辑器中运行良好,但在编译到应用程序中时会触发错误。

我在 MacBook Air M1 上运行 Sonoma 14.3.1。在安全模式和常规模式下都会出现错误。我还使用 UTM 和 Parallels 19 在准系统 MacOS Sonoma VM 上运行了测试;进入和退出安全模式。

还在我运行 Catalina 的旧版 MacBook Pro Intel 上进行了测试。应用程序运行成功,表明可能是 M1 问题。

建议表示赞赏。谢谢。

applescript
2个回答
1
投票

问题是运行的应用程序与您授予权限的应用程序不同。您可以通过编辑或运行来不断更改它。

所以就这样做吧。如果您的小程序已在“隐私和安全”>“辅助功能”中列出,请删除其中的列表。为了安全起见,也扔掉原来的小程序。从脚本编辑器中,使用不同的名称将脚本导出为应用程序,仅运行,签名可在本地运行。使其仅运行将防止应用程序长期自我修改(维持任何状态)。

现在将小程序的this版本添加到隐私和安全>辅助功能。确保开关已打开。双击 Finder 中的小程序即可运行它。运行成功。

enter image description here


0
投票

非常感谢你,马特。 我花了几个月的时间追捕罪魁祸首。谢谢你,现在所有的烦恼都消失了!!!!!!

© www.soinside.com 2019 - 2024. All rights reserved.