Псевдоним Sandbox и Finder

Я пытаюсь создать URL-адрес с областью безопасности для предоставленного пользователем файла, который является псевдонимом, используя эти методы, которые используют resolvedFinderAlias():

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

который выдает ошибку при попытке использовать разрешенный URL-адрес в качестве относительного URL-адреса; Первоначально я просто заменил переданный URL-адрес на origURL, который тоже не работал.

Единственное решение — не делать этого или предварительно передать исходный URL. Это похоже на то, что вы не можете поменять URL-адреса, которые вам должны быть предоставлены либо из открытого диалогового окна, либо из папки на монтажном столе.

URL-адреса, являющиеся псевдонимами, не подходят для работы в песочнице?


person slashlos    schedule 29.12.2017    source источник