Macos 您没有在Mac Mojave中保存文件的权限

Macos 您没有在Mac Mojave中保存文件的权限,macos,file-manager,macos-mojave,swift4.2,macos-app-extension,Macos,File Manager,Macos Mojave,Swift4.2,Macos App Extension,在我的macOS应用程序中,我试图使用下面的扩展名创建一个目录 extension URL { static func createFolder(folderName: String, folderPath:URL) -> URL? { let fileManager = FileManager.default let folderURL = folderPath.appendingPathComponent(folderName)

在我的macOS应用程序中,我试图使用下面的扩展名创建一个目录

extension URL {
    static func createFolder(folderName: String, folderPath:URL) -> URL? {
        let fileManager = FileManager.default
        let folderURL = folderPath.appendingPathComponent(folderName)
        // If folder URL does not exist, create it
        if !fileManager.fileExists(atPath: folderURL.path) {
            do {
                // Attempt to create folder
                // try fileManager.createDirectory(at: folderURL, withIntermediateDirectories: true, attributes: nil)
                // try fileManager.createDirectory(atPath: folderURL.path, withIntermediateDirectories: true, attributes: nil)
                try fileManager.createDirectory(atPath: folderURL.relativePath, withIntermediateDirectories: true, attributes: nil)
            } catch {
                print(error.localizedDescription + ":\(folderURL.path)")
                return nil
            }
        }
        return folderURL
    }
}
当我调用这个调用时,它给了我一个错误

您没有在文件夹中保存文件“FolderName”的权限 “SelectedFolder”。:/Users/USERNAME/Workspace/SelectedFolder/FolderName


我看了一个类似的,并且尝试了所有的方法,但是它仍然给我错误,我在这里遗漏了什么吗?非常感谢您提供的任何帮助

我假设您的应用程序是沙盒。所以,您没有权限为您尝试写入的位置写入文件夹

如果它不适用于沙盒,则可以禁用应用程序沙盒,方法是单击项目文件>目标名称,选择“功能”选项卡并关闭应用程序沙盒

文件系统编程指南:

应用程序沙盒文档位于此处:

您还可以查看安全范围的书签以获得持久的资源访问

此处的文档:


我假设你的应用程序是沙盒。所以,您没有权限为您尝试写入的位置写入文件夹

如果它不适用于沙盒,则可以禁用应用程序沙盒,方法是单击项目文件>目标名称,选择“功能”选项卡并关闭应用程序沙盒

文件系统编程指南:

应用程序沙盒文档位于此处:

您还可以查看安全范围的书签以获得持久的资源访问

此处的文档:


如果应用程序是沙盒,则行为是正常的。你没有权限在应用程序容器之外进行写操作。我正在模拟器上运行它。那么,你的意思是说,一旦我导出我的应用程序,我就可以这样做了?我现在应该如何测试它?不,你不会。这是沙盒的规则。你能告诉我应该把我的示例文件夹放在哪里进行测试吗?试着对你的应用程序进行代码签名并检查。这会有帮助的。如果应用程序是沙盒,则行为是正常的。你没有权限在应用程序容器之外进行写操作。我正在模拟器上运行它。那么,你的意思是说,一旦我导出我的应用程序,我就可以这样做了?我现在应该如何测试它?不,你不会。这是沙盒的规则。你能告诉我应该把我的示例文件夹放在哪里进行测试吗?试着对你的应用程序进行代码签名并检查。这会有帮助的。谢谢,你的回答很有帮助。我仍然能够在应用程序沙盒打开的情况下创建目录,方法是授予用户从只读到读/写所选文件的访问权限。谢谢,您的回答很有帮助。我仍然能够使用appsandbox创建目录,方法是授予用户从只读到读/写所选文件的访问权限。