【问题标题】:You don't have permission to save file in Mac Mojave您无权在 Mac Mojave 中保存文件
【发布时间】:2019-03-15 06:33:45
【问题描述】:

在我的 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

我查看了类似的post 并尝试了所有方法,但它仍然给我错误,我在这里遗漏了什么吗?任何帮助表示赞赏

【问题讨论】:

  • 如果应用程序被沙盒化,则行为是正常的。您无权在应用程序容器之外进行写入。
  • 我在模拟器上运行它。所以,你的意思是说,一旦我导出我的应用程序,我就能做到这一点?我现在应该如何测试它?
  • 不,你不会。这是沙盒的规则。
  • 你能告诉我应该把我的示例文件夹放在哪里进行测试吗?
  • 尝试对您的应用进行代码签名并检查。这会有所帮助。

标签: macos file-manager macos-mojave swift4.2 macos-app-extension


【解决方案1】:

【讨论】:

  • 谢谢,您的回答有帮助。通过授予对“用户选择的文件”从只读到读/写的权限访问权限,我仍然能够使用 App Sandbox 创建目录。
猜你喜欢
  • 2019-11-03
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
相关资源
最近更新 更多