解决方案: 我需要做两件事来解决我的问题:
1)将以下内容添加到我的应用程序的权利文件中:
<key>com.apple.security.temporary-exception.apple-events</key>
<array>
<string>com.apple.Mail</string>
</array>
2)将以下内容添加到我的应用程序列表中:
<key>NSAppleEventsUsageDescription</key>
<string>Please allow "your message here"</string>
这适用于 Mojave 10.14 (18A389)
我有一个基于 Swift 的基本 macOS 应用程序。我想使用 Apple Script 来确定 Mail.app 中未读电子邮件的数量。我创建了一个小的 Apple Script 并在 Script Debugger 中对其进行了测试(它工作正常)。
当我在我的应用程序中运行相同的脚本时,虽然它未能说明邮件应用程序没有运行(即使它是):
let unreadEmailsScript = """
tell application "Mail"
get unread count of inbox
end tell
"""
if let scriptObject = NSAppleScript(source: unreadEmailsScript) {
var errorDict: NSDictionary? = nil
scriptObject.executeAndReturnError(&errorDict)
if let error = errorDict {
print(error)
}
}
输出:
{
NSAppleScriptErrorAppName = Mail;
NSAppleScriptErrorBriefMessage = "Application isn't running.";
NSAppleScriptErrorMessage = "Mail got an error: Application isn't running.";
NSAppleScriptErrorNumber = "-600";
NSAppleScriptErrorRange = "NSRange: {33, 12}";
}
我以前没有在应用程序中执行过 Apple Script。这个错误是由于权限问题吗?