UIDocumentPickerController отказано в доступе какао Ошибка 257 - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь импортировать собственный файл из одного из моих приложений в другое (назовем их App_A и App_B). Если я экспортирую файл прямо из App_A и в общем листе выбираю App_B, все работает нормально.

Моя проблема в том, что файл сохраняется в iCloud Drive, поэтому пользователь может получить к нему доступ через файловое приложение системы. Когда я пытаюсь выбрать тот же файл из приложения «Файлы» или в App_B через UIDocumentPickerViewController.

В обоих случаях я запускаю следующий код (внутри UIDocumentPickerDelegate или AppDelegate):

let access = url.startAccessingSecurityScopedResource()
var error: NSError? = nil
NSFileCoordinator().coordinate(readingItemAt: url, error: &error) { (coorURL) in

  do{
    let data = try Data(contentsOf: coorURL)
  }catch{
    print("manage error: \(error.localizedDescription)")
  }

  if access{
    url.stopAccessingSecurityScopedResource()
  }
}

Ошибка, которую я получаю, всегда одна и та же:

Error Domain=NSCocoaErrorDomain Code=257 ... NSUnderlyingError=0x2803e07b0 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}} и url.startAccessingSecurityScopedResource() всегда возвращает false.

Я делаю это на Xcode 11.4.1, Swift 5 , iOS 13.3.1 на устройстве и 13.4.1 на симуляторе, но результат не меняется.

Вы имеете представление об этой странной ошибке? Я полагаю, что если пользователь выберет файл и приложение для его открытия, разрешение будет предоставлено, но, вероятно, мне что-то не хватает. Не могли бы вы помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...