Невозможно открыть файл из приложения iOS Files через Open Inподелиться листом: нет файла по указанному файлу URL существует - PullRequest
0 голосов
/ 31 января 2019

Мое приложение 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).Чем это вызвано?Как я могу поддержать открытие файлов из приложения «Файлы» в моем приложении?

Типы документов, поддерживаемые моим приложением, следующие:

Xcode document types

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Я исправил это, настроив некоторые параметры в Info.plist приложения.

Я переключил UISupportsDocumentBrowser на false и добавил LSSupportsOpeningDocumentsInPlace, также установив на false.

Я думаю, что эти настройки были установлены неправильно (мной) после того, как я получил электронное письмо от App Store Connect с указанием:

Неверная конфигурация документа - Приложения на основе документов должны поддерживать либо Браузер документов (UISupportsDocumentBrowser = YES) или реализовать Open In Place (LSSupportsOpeningDocumentsInPlace = YES / NO).Посетите https://developer.apple.com/document-based-apps/ для получения дополнительной информации.

0 голосов
/ 31 января 2019

Не думаю, что вы можете обмениваться файлами между различными приложениями (которые не входят в одну группу приложений):

Обмен данными между приложениями на iOS

...