macOS sandbox 获取用户路径文件夹
macOS如果想上苹果市场发布的话,那么必须要遵守苹果的沙盒协议,这样应用的存储默认都是沙盒路径,隔离了用户的文件系统,那么这个时候我需要访问 /User/xxx/Library 这种文件夹该如何获取文件路径呢。
下面是一个简单的例子(swift5版本)
func getAbsolutePath(path: String) -> String? {
let pw = getpwuid(getuid())
guard let home = pw?.pointee.pw_dir else {
return nil
}
let homePath = FileManager.default.string(withFileSystemRepresentation: home, length: Int(strlen(home)))
return "\(homePath)/\(path)"
}
使用的时候
let filepath = getAbsolutePath(path: "Library/Developer/")
// 就能获取到用户相应的文件夹地址 /User/xxx/Library/Developer/