Apple отклоняет мое приложение из-за отсутствия функции, позволяющей пользователям просматривать или выбирать элементы из приложения «Файлы» - PullRequest
0 голосов
/ 29 июня 2018

В моем приложении я получаю видео из галереи, используя метод ниже:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
}

Но Apple отклонена из приложения и должна включать функциональность для выбора элементов видео из приложения Файлы.

Вот Apple, дай мне причину:

Мы заметили, что ваше приложение позволяет пользователям просматривать и выбирать файлы, но он не включает функции, позволяющие пользователям просматривать или выбирать элементы из приложения Файлы и пользовательские документы iCloud, по мере необходимости по правилам обзора App Store.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Я мог видеть пункт в руководстве по рассмотрению

2.5.15 Приложения, позволяющие пользователям просматривать и выбирать файлы, должны включать элементы из приложения «Файлы» и документы iCloud пользователя.

Похоже, вы должны добавить UIDocumentPickerViewController поддержку, как @ Paulw11 указал

0 голосов
/ 29 июня 2018

Похоже, что они хотят, чтобы вы использовали UIDocumentPickerViewController, чтобы пользователи могли выбирать видеофайлы из облачных сервисов, а также из библиотеки фотографий в соответствии с пунктом 2.5.15

Apple хочет, чтобы их клиенты имели хороший опыт работы со своим устройством и приложениями, которые на нем работают, поэтому для вашего приложения имеет смысл поддерживать все соответствующие функции iOS.

Вы можете создать средство выбора документа для выбора видеофайлов, используя:

let picker = UIDocumentPickerViewController(documentTypes: ["public.movie"], in: .import)
picker.delegate = self
self.show(picker, sender: self)

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

extension ViewController: UIDocumentPickerDelegate {
    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
        if let pickedUrl = urls.first {
            let filename = pickedUrl.lastPathComponent
            self.filename.text = filename
            let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
            var documentsDirectory = paths[0]
            // Apend filename (name+extension) to URL
            documentsDirectory.appendPathComponent(filename)
            do {
                // If file with same name exists remove it (replace file with new one)
                if FileManager.default.fileExists(atPath: documentsDirectory.path) {
                    try FileManager.default.removeItem(atPath: documentsDirectory.path)
                }
                // Move file from app_id-Inbox to tmp/filename
                try FileManager.default.moveItem(atPath: pickedUrl.path, toPath: documentsDirectory.path)
                UserDefaults.standard.set(filename, forKey:"filename")
                UserDefaults.standard.set(documentsDirectory, forKey:"fileurl")
                self.fileURL = documentsDirectory
            } catch {
                print(error.localizedDescription)
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...