Mojave Xcode 应用程序 AppleEvent 控制其他应用程序无法一致工作 (NSAppleEventsUsageDescription)

问题描述

我的 Xcode 应用程序 (MyApp) 在 Mojave 中的 AppleEvent SandBoxing 遇到了一个奇怪的问题,该应用程序使用 Applescript 来控制其他 3 个 OSX 应用程序。我找到的所有答案都在谈论让它成功地工作。我只是无法让它在两台计算机上以相同的方式工作。

我能够让它在一台在 Xcode 中运行它的计算机上以及在运行编译后的目标文件时完美运行。它适用于所有三个应用程序,但当我在另一台计算机上尝试时,它适用于其中两个应用程序,但不适用于 Microsoft Excel。

我通过在 Info.plist 文件添加“隐私 - AppleEvents 发送使用说明”条目来设置 NSAppleEventsUsageDescription,在一台计算机上我得到正确的“MyApp 想要访问控制”消息,我确定,然后添加MyApp 和要控制到“安全和隐私”自动化首选项窗口的应用程序。在一台 Mojave 计算机上,它非常适合“邮件”、我的会计程序和“Microsoft Excel”。

在另一台计算机上,它以相同的方式用于“邮件”和我的会计包,但是当它尝试访问“Microsoft Excel”时,我收到“1743 - 未授权将 Apple 事件发送到 Microsoft Excel”消息。 “自动化”窗口中仅显示前两个应用。

我尝试运行“tccutil reset AppleEvents”,它会清除“自动化”窗口中的所有内容并让我再次批准这些内容,但它仍然拒绝在第二台计算机上使用“Microsoft Excel”。

我能看到的唯一区别是 A) 它不工作的计算机的 Excel 14.1.3 版本比工作计算机的 14.0.0 稍新,B) 工作计算机是 Xcode 开发机器.

两台计算机都运行 Mojave 10.14.6,我正在使用 Xcode 11.3.1 进行开发。使用更高版本的 OSX 会很好,我认为安全性更易于使用,但我的会计软件将我限制在 Mojave。

Microsoft Excel 等应用中是否有任何限制或设置可以阻止这种情况?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...