事件工具包中的授权错误。 [命令行工具]

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

我已经创建了MacOS命令行应用程序。但是,尝试访问EKEventStore时出现以下错误。

CoreData:XPC:无法加载元数据:错误Domain = NSCocoaErrorDomain代码= 134070“在持久存储。“ UserInfo = {问题=请求失败,不足权限}

在Mac Os Sierra中,这很好用。但是,当升级到Mojave时,它给了我这个错误。

main.swift:

import Foundation
import EventKit

let store = EKEventStore()

print("asdasd")

info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>CFBundleIdentifier</key>
        <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
        <key>CFBundleShortVersionString</key>
        <string>1.0</string>
        <key>CFBundleVersion</key>
        <string>1</string>
        <key>Privacy – Calendars Usage Description</key>
        <string>You have to give permission to access your calendar sources</string>
    </dict>
</plist>

应用程序从编译的命令行文件运行。但是,它不会启用调试。感谢您的建议。

swift macos eventkit
1个回答
0
投票

我也在Catalina上看到了这种行为。唯一的解决方法是使用不建议使用的objc调用:

store = [[EKEventStore alloc] initWithAccessToEntityTypes:EKEntityMaskReminder];

我对结果不做任何事情,但是在第一个调用中,弹出窗口要求> terminal

我编写了一个导出提醒的工具,该工具使用以下方法:Tool to Export Reminders

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