我无法在macOS Ventura上使用Xcode 14和Swift 5设置读取项目目录中文件的权限

rdlzhqv9  于 2023-05-21  发布在  Swift
关注(0)|答案(1)|浏览(263)

我正在编写一个最小的应用程序来学习如何读取可以显示为图像的UInt 16数据文件。它最终编译,但在运行时崩溃与文件读取权限错误。我试图给予应用程序权限读取和写入文件,权限似乎说,我有读取和写入权限.
它在第二行崩溃:

let fileURL = URL(fileURLWithPath: "/Users/<user>/<some path/<some file with ext .raw>")   
let data = try! Data(contentsOf: fileURL)

这个错误:
线程1:致命错误:“try!”表达式意外引发错误:错误域=NSCocoaErrorDomain Code=257“无法打开文件“p03- 4 M1 -041.raw”,因为您没有查看它的权限。”UserInfo={NSFilePath=/Users/nate/2008 11 15 Freeway Fire/p03/p03- 4 M1 -041.raw,NSUnderlyingError= 0x 600002 d 72 a90 {错误域=NSPOSIXErrorDomain Code=1“不允许操作”}}
我认为这是一个Xcode问题,因为Assets.xcasssets似乎是空的,没有plist。
我在运行Ventura的MacBook上使用Xcode 14,Swift 5。

hfsqlsce

hfsqlsce1#

macOS应用程序已被沙箱化。要访问应用资源包之外的文件,您需要在“签名和功能”选项卡上项目目标的应用沙盒部分启用“用户选定文件”文件访问权限。
然后,您需要使用标准文件选择器(例如NSOpenPanel)。然后,您的应用将仅具有访问所选文件的权限。您无法访问您碰巧为其创建了文件URL的任何任意文件。
除了启用“用户选定的文件”,您还可以授予访问标准文件夹,如“下载”和其他一些。然后,您的应用可以直接访问您的应用已被授予访问权限的文件夹中的文件。

相关问题