Песочница и псевдоним 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-адреса, которые являются псевдонимами, не подходят для работы в песочнице?