UIActivityViewController думает, что мой jpg - это видео, когда делится по URL-адресу файла

У меня есть файлы jpg, сохраненные в каталоге Documents, которыми можно поделиться из стандартного UIActivityViewController. Все элементы активности (включая «Сохранить изображение») работают должным образом, но при нажатии «Сохранить изображение» в консоли отображается следующая ошибка, несмотря на то, что файл jpg действительно сохраняется в альбоме камеры.

Это ошибка в iOS, или мне нужно как-то указать, что мой файл является jpg (а не видео) в URL-адресе файла?

2015-07-29 06: 46: 58.317 Имя приложения [4658: 893408] Видео /var/mobile/Containers/Data/Application/A63DF08E-21D0-435D-A0D7-84D73D632FC9/Documents/ImageStore/805/23.jpg не может быть сохранено в альбом с сохраненными фотографиями: Error Domain = AVFoundationErrorDomain Code = -11828 «Невозможно открыть» UserInfo = 0x1702e8b80 {NSLocalizedFailureReason = Этот формат мультимедиа не поддерживается., NSLocalizedDescription = Невозможно открыть, NSURL = file: /// var / mobile / Containers / Data / Application / A63DF08E-21D0-435D-A0D7-84D73D632FC9 / Documents / ImageStore / 805 / 23.jpg, NSUnderlyingError = 0x170c4f9f0 «Операция не может быть завершена. (Ошибка OSStatus -12847.)»}

Вот код, который я использую:

NSURL *fileURL = [NSURL fileURLWithPath: [...path to my file...] isDirectory:NO];
UIActivityViewController *activityViewController = [[UIActivityViewController    alloc] initWithActivityItems:@[fileURL] applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard, UIActivityTypePrint, UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo];
[self presentViewController:activityViewController animated:YES completion:nil];

person Paul B.    schedule 29.07.2015    source источник
comment
Вы уверены, что хотите поделиться NSURL вместо UIImage@[fileURL])?   -  person Larme    schedule 29.07.2015
comment
Мы начали с совместного использования UIImage, и это сработало, но недостатком является отсутствие контроля над именем файла, которое отправляется. Совместное использование NSURL учитывает настоящее имя файла jpg. Странно то, что все работает, поэтому я не уверен, почему эта ошибка вообще возникает.   -  person Paul B.    schedule 29.07.2015
comment
Привет, Пол, я тоже столкнулся с этой ошибкой. Вы когда-нибудь придумывали решение? Спасибо   -  person Jason    schedule 04.01.2016
comment
Я так и не нашел решения. Все работает, поэтому мне просто пришлось проигнорировать это.   -  person Paul B.    schedule 04.01.2016
comment
Боковое примечание: если вы поделитесь изображением вместо URL-адреса, вы также потеряете свойства / метаданные изображения, такие как данные EXIF ​​и т. Д.   -  person Lepidopteron    schedule 03.02.2017
comment
Я вижу ту же ошибку при публикации PNG.   -  person Pang    schedule 31.07.2017
comment
Идентичный вопрос на форумах разработчиков Apple: forum.developer.apple.com/thread/12700   -  person Pang    schedule 31.07.2017
comment
Я не думаю, что это проблема того, что вы делаете. Я бы посоветовал зарегистрировать радар (bugreporter.apple.com), чтобы сообщить Apple об этой проблеме (разработчик форумы не обязательно отслеживаются, и до тех пор, пока никто не создает радар, эта проблема в основном не существует для Apple).   -  person Michael Ochs    schedule 31.07.2017
comment
та же проблема, любое решение?   -  person Nininea    schedule 06.12.2017


Ответы (1)


Я получил указанное выше сообщение при попытке сохранить файл png. Также заметил некоторые другие сообщения об ошибках. Отслеживая их, я избавился от обеих проблем, применив OS_ACTIVITY_MODE с отключением, как показано в следующем вопросе / ответе: Чтение из общедоступных эффективных пользовательских настроек в iOS 10

person anorskdev    schedule 20.11.2018