gpt4 book ai didi

swift - 从基于 macOS Swift 的应用程序中运行时,Apple Script 失败

转载 作者:搜寻专家 更新时间:2023-11-01 05:32:47 27 4
gpt4 key购买 nike

解决方案:我需要做两件事来解决我的问题:

1) 将以下内容添加到我的应用程序的权利文件中:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
<string>com.apple.Mail</string>
</array>

2) 将以下内容添加到我的应用的 plist 中:

<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。此错误是由于权限问题造成的吗?

最佳答案

是的,这是一个权限问题。

您的应用是沙盒化的,您必须指定适当的权利。将此添加到您应用的权利文件中:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
<string>com.apple.Mail</string>
</array>

关于swift - 从基于 macOS Swift 的应用程序中运行时,Apple Script 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52432402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com