Мое приложение iOS может открывать файлы CSV, чтобы импортировать их данные.Я могу без проблем открывать файлы из приложения через UIDocumentPickerViewController
, выбирая файл, показанный в приложении «Файлы».Однако при первом просмотре файла в приложении «Файлы», а затем открытии моего приложения оттуда (через общий ресурс «Открыть в») мое приложение не может увидеть файл по URL-адресу, переданному в мое приложение.Файл, кажется, не существует.
Я добавил следующий код отладки в мой AppDelegate:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
print("Exists: \(FileManager.default.fileExists(atPath: url.path)) (\(url.path))")
return true
}
Когда я открываю файл из Файлов в этом приложении, это приводит к строке журналанапример:
Существует: false (/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/Reading List - Andrew’s iPhone - 2018-10-18 11-19.csv
)
Когда я открываю файл из какого-либо другого приложения (например, Dropbox или из электронной почты), файл может быть обработанным, и регистрируется следующее:
Существует: true (/private/var/mobile/Containers/Data/Application/F9110F90-7A91-4AB6-A92E-0ED933184EA4/Documents/Inbox/Reading List - Andrew’s iPhone - 2018-01-27 08-03.csv
)
Обратите внимание на другой путь (Documents/Inbox
противMobile Documents/com~apple~CloudDocs
).Чем это вызвано?Как я могу поддержать открытие файлов из приложения «Файлы» в моем приложении?
Типы документов, поддерживаемые моим приложением, следующие: