用ai做网站各个广告联盟的标识
macOS sandbox 文件夹授权
macOS如果想上苹果市场发布的话,那么必须要遵守苹果的沙盒协议,这样应用的存储默认都是沙盒路径,隔离了用户的文件系统,那么这个时候我需要访问 /User/xxx/Library/Developer/ 这种文件夹的时候,直接访问是会被拒绝的,那既然这样就肯定要授权了,等同意了在访问就名正言顺了。
那么要如何进行这种操作呢,首先想到的肯定是先把这个文件夹打开再说,然后当次的权限就有了,然后就是解决后续依然有权限访问的问题,这个时候就用到了 bookmark,这个东东就是转门干这个用的,下面一步一步的来实现这个功能。
本例子以授权 /user/xxx/Library/Developer/ 路径为例。
首先获取到文件绝对路径。
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 path = getAbsolutePath("/Library/Developer")
// /User/xxx/Library/Developer/
打开文件夹获取权限
func openFinder() {let fm = FileManager.defaultlet filepath = getAbsolutePath(path: "Library/Developer/")!print("filepath is \(filepath)")let url = URL(filePath: filepath)let dialog = NSOpenPanel()dialog.message = "文件夹授权以提供服务"dialog.prompt = "选择"dialog.allowsOtherFileTypes = falsedialog.canChooseFiles = falsedialog.canChooseDirectories = truedialog.directoryURL