Swift 沙盒和查找器别名
我正在尝试使用以下方法为用户提供的文件创建一个安全范围的URL,该文件恰好是一个别名,该方法使用()方法: 在尝试将解析的URL用作相对URL时引发错误;我最初只是将传入的URL交换到原始URL,但该URL也不起作用 唯一的解决方案是不这样做,或者以前在原始URL中传递。这几乎就像您无法交换URL一样,您必须从打开的对话框或粘贴板拖放中获得URL 别名URL是否不适合沙盒工作Swift 沙盒和查找器别名,swift,macos,appstore-sandbox,Swift,Macos,Appstore Sandbox,我正在尝试使用以下方法为用户提供的文件创建一个安全范围的URL,该文件恰好是一个别名,该方法使用()方法: 在尝试将解析的URL用作相对URL时引发错误;我最初只是将传入的URL交换到原始URL,但该URL也不起作用 唯一的解决方案是不这样做,或者以前在原始URL中传递。这几乎就像您无法交换URL一样,您必须从打开的对话框或粘贴板拖放中获得URL 别名URL是否不适合沙盒工作 func storeBookmark(url: URL) -> Bool { // Resolve al
func storeBookmark(url: URL) -> Bool
{
// Resolve alias before storing bookmark
let origURL = (url as NSURL).resolvedFinderAlias()
// Peek to see if we've seen this key before
if let data = bookmarks[url] {
if self.fetchBookmark(key: url, value: data) {
Swift.print ("= \(url.absoluteString)")
return true
}
}
do
{
let options:URL.BookmarkCreationOptions = [.withSecurityScope,.securityScopeAllowOnlyReadAccess]
let data = try url.bookmarkData(options: options, includingResourceValuesForKeys: nil, relativeTo: origURL)
bookmarks[url] = data
return self.fetchBookmark(key: url, value: data)
}
catch let error
{
NSApp.presentError(error)
Swift.print ("Error storing bookmark: \(url)")
return false
}
}