Полное сообщение об ошибке:
[main] *** Ошибка из FPBookmarkableStringFromDocumentURL, файл: /// private / var / mobile / Library / Mobile% 20Documents / com ~ apple ~ CloudDocs /MY_APP / hello.txt -> Error Domain = NSCocoaErrorDomain Code = 257 "Файл не может быть открыт, потому что у вас нет разрешения на его просмотр."
Эта ошибка возникла из SceneDelegate(введено в iOS 13), когда я перезапускаю свое приложение и пытаюсь снова открыть ранее открытый файл (например, когда приложение было «фоновым» и память освобождается, поэтому я хочу перезагрузить состояние сцены). Я выполнил шаги этого сеанса WWDC https://developer.apple.com/videos/play/wwdc2019/212 и загруженный пример исходного кода из https://developer.apple.com/documentation/uikit/app_and_environment/scenes/supporting_multiple_windows_on_ipad
Я в основном скопировал их конфигурацию (window: UIWindow ?, с Activity: NSUserActivity) -> Bool functionи преобразовал это, чтобы соответствовать моим потребностям. Кажется, работает безупречно, но я получаю сообщение об ошибке.
Я использую стандартную технику NSUserActivity, описанную в разделе «Принятие передачи обслуживания в приложениях на основе документов» https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/Handoff/AdoptingHandoff/AdoptingHandoff.html#//apple_ref/doc/uid/TP40014338-CH2-SW17
Вот тело функции настройки:
if activity.activityType == "com.myName.MyApp.openedDocumentUserActivity" {
if let documentURL = activity.userInfo?[UIDocument.userActivityURLKey] as? URL {
if let docBrowserVC = window?.rootViewController as? DocumentBrowserViewController {
documentURL.startAccessingSecurityScopedResource() // tried this, it returns false
docBrowserVC.presentDocument(at: documentURL)
return true
}
}
}
return false
Если кто-нибудь знает об обходном пути, спасибо.