【发布时间】:2019-06-09 14:41:12
【问题描述】:
我正在尝试弄清楚如何在我的 macOS 应用程序 (swift) 中访问 ~/Library/Messages 文件夹。具体来说,我正在尝试访问chat.db 文件。
如果我执行以下操作(没有沙箱),我会收到一个打开错误。
let url = try? FileManager.default.url(for: .libraryDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
url = url!.appendingPathComponent("Messages", isDirectory: true).appendingPathComponent("chat.db", isDirectory: false)
// Then open this file...
如果我改为使用打开对话框将用户指向文件夹,我会在文件夹图标上看到一个禁止标志。
我需要什么权限才能访问此文件?我已经尝试过辅助功能,但似乎不是这样(而且我没有授予 iTerm 辅助功能,我仍然可以转到该文件夹)。任何指针表示赞赏。谢谢!
(我只需要访问这一个文件。如果有办法在沙盒中执行此操作,我很乐意走那条路。如果不可能,请请求任何许可。)
【问题讨论】:
-
我什至无法从终端窗口列出
~/Library/Messages的内容,即使使用sudo ls也没有得到“不允许操作”。这向我强烈暗示,你不应该往里面看。您需要找到另一种方法,也许使用一些 API,那么您真正想要做什么? -
我正在尝试访问 iMessage 聊天数据库。是的,我知道通常这是一个系统文件夹,不应访问。但是,应用程序想要获得访问权限是有正当理由的,而且 macOS 比 iOS 更灵活。
标签: swift macos permissions