Swift 沙盒和查找器别名

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

我正在尝试使用以下方法为用户提供的文件创建一个安全范围的URL,该文件恰好是一个别名,该方法使用()方法:

在尝试将解析的URL用作相对URL时引发错误;我最初只是将传入的URL交换到原始URL,但该URL也不起作用

唯一的解决方案是不这样做,或者以前在原始URL中传递。这几乎就像您无法交换URL一样,您必须从打开的对话框或粘贴板拖放中获得URL

别名URL是否不适合沙盒工作

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
    }
}