gpt4 book ai didi

swift - 无法在 macOS 的 Swift 应用程序中请求日历事件访问权限(通过 EKEventStore)

转载 作者:行者123 更新时间:2023-12-02 03:08:46 24 4
gpt4 key购买 nike

(我以前从未使用过 Swift 或 Xcode,所以这可能是一个愚蠢的问题)

为了隔离问题,我在 Xcode 11 中创建了一个完全空的“应用程序”,并将其放入 AppDelegate.swift 中:

import Cocoa
import EventKit

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

private let eventStore = EKEventStore()

func applicationDidFinishLaunching(_ aNotification: Notification) {
eventStore.requestAccess(to: .event) { granted, error in
if granted {
print("GOOD: Access granted")
} else {
print("BAD: Access denied")
}
}
}
}

当我运行该应用程序(通过 cmd+R)时,我立即看到它拒绝访问,而没有给我批准访问的机会:

Metal API Validation Enabled
BAD: Access denied

我做错了什么?我怎样才能获得它以允许我批准对日历事件的访问?

请注意,我注意到 the docs说:

To access the user’s Calendar data, all sandboxed macOS apps must include the com.apple.security.personal-information key.

所以我在 App_Name.entitlements 中进行了这样的更改,但没有帮助:

<?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>com.apple.security.personal-information</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>

最佳答案

已修复。我做错了两件事:

    权利文件中的
  1. com.apple.security.personal-information不正确。只需输入“日历”即可自动补全正确的内容。
  2. Info.plist 文件中,我需要“隐私 - 日历使用说明”拥有一个值。我在这里发现:https://forums.developer.apple.com/thread/110825

关于swift - 无法在 macOS 的 Swift 应用程序中请求日历事件访问权限(通过 EKEventStore),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58274726/

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