所以,问题是: 当使用 Event Kit 框架并请求访问 OSX 上的用户日历数据库时,仅在第一次调用 -requestAccessToEntityType:Completion: 时才会显示请求用户许可的面板。这使得当用户拒绝权限时,甚至当用户最初授予权限时(换句话说,重新创建首次运行条件)时,很难测试应用程序的响应。如果有办法将 EKAuthorizationStatus 重置为 EKAuthorizationStatusNotDetermined,则可以复制此用户场景,但据我所知,一旦做出初始权限决定,就无法返回到 NotDetermined 状态。
我已阅读此处发布的 iOS 解决方案:Is it possible to reset the privacy settings in iOS? 但我找不到 OSX 的类似解决方案。
问题: 有没有办法模拟请求访问用户日历数据库的应用程序的首次运行,以便出于测试目的重复显示权限对话框?
最佳答案
权限标志存储在 SQLite 数据库中:
~/Library/Application Support/com.apple.TCC/TCC.db
在 access
表中,您应该看到列 service
和 kTCCServiceAddressBook
等以及 client
任何拥有权限或在某个时候请求过的相应应用程序。
如果您想测试再次请求权限的功能,请删除包含应用程序名称的行 - 下次启动它时,您应该再次收到请求。
您可以通过以下方式验证权限:
System Preferences > Security & Privacy > Privacy
关于macos - 将 EKAuthorizationStatus 重置为 EKAuthorizationStatusNotDetermined 以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445600/