РЕШЕНИЕ: Мне нужно было сделать две вещи, чтобы решить мою проблему:
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)
У меня есть базовое MacOS-приложение на основе Swift.Я хотел бы использовать Apple Script для определения количества непрочитанных сообщений электронной почты в Mail.app.Я создал небольшой Apple Script и протестировал его в Script Debugger (он работает нормально).
Когда я запускаю тот же скрипт из моего приложения, хотя он не показывает, что приложение Mail не запущено (хотя оно и работает)is):
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 из приложения ранее.Это ошибка из-за проблем с разрешениями?