Приложение не имеет доступа к вашим фото или видео iOS 9
Когда я захожу в свою библиотеку фотографий с помощью UIImagePicker для выбора фотографии, приложение иногда показывает мне черный экран, а иногда экран, который говорит о том, что я должен дать разрешение своему приложению для доступа к фотографиям. Но когда я захожу в Настройки -> Конфиденциальность -> Фотографии, там нет приложения, и приложение нигде не видно в Настройках. Я прочитал, что должен добавить два значения в мой Info.plist, но они тоже не сработали. Кто-нибудь запускал с такой же ошибкой? Я работаю с xcode 7, swift 2.0 и iOS 9
Здесь я запрашиваю у пользователя доступ к камере
@IBAction func cameraButtonPressed(sender: UIButton) {
let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
let cancelAction = UIAlertAction(title: "Cancel", style: .Default) { (UIAlertAction) -> Void in
self.dismissViewControllerAnimated(true, completion: nil)
}
let cameraAction = UIAlertAction(title: "Take Photo", style: .Default) { (UIAlertAction) -> Void in
if UIImagePickerController.availableCaptureModesForCameraDevice(.Rear) != nil {
self.imagePicker.allowsEditing = false
self.imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
self.imagePicker.cameraCaptureMode = .Photo
self.presentViewController(self.imagePicker, animated: true, completion: nil)
} else {
self.noCamera()
}
}
let photoLibraryAction = UIAlertAction(title: "Photo Library", style: .Default) { (UIAlertAction) -> Void in
self.imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(self.imagePicker, animated: true, completion: nil)
}
actionSheet.addAction(photoLibraryAction)
actionSheet.addAction(cameraAction)
actionSheet.addAction(cancelAction)
self.presentViewController(actionSheet, animated: true, completion: nil)
}
7 ответов
Эта проблема возникает в iOS 9, когда файл Info.plist вашего приложения содержит ключ: "CFBundleDisplayName" с пустым строковым значением.
Вы можете ввести имя вашего приложения там, и оно должно работать.
В info.plist поле "Отображаемое имя пакета" не может быть пустым.
Если вы получаете этот экран, возможно, есть следующие причины и решения:
1. Если вы не получаете уведомление о разрешении доступа.
Решение: 1. Добавьте CFBundleDisplayName и его значение в качестве заголовка приложения или всего, что вы хотите. 2. Добавьте NSPhotoLibraryUsageDescription в файл info.plist
2. Проверьте настройки -> Конфиденциальность -> Фотографии, конфиденциальность отключена или включена.
Решение: включить конфиденциальность для фотографий.
3.Если вы работаете на симуляторе и уже добавили CFBundleDisplayName, не получая оповещения о доступе к фотографиям.
Solation: Убедитесь, что используемый вами Xcode должен находиться в папке приложения, чтобы получить уведомление о разрешении доступа.
ДЛЯ iOS10 В info.plist
"CFBundleDisplayName" введите название вашего приложения
<key>CFBundleDisplayName</key>
<string>IMS Food-taxi</string>
и "NSPhotoLibraryUsageDescription" добавить описание
<key>NSPhotoLibraryUsageDescription</key>
<string>you will need to give the app permission to use the Photos.</string>
Я понимаю, что это старый вопрос, но есть еще один последний совет...
После того, как я попробовал вышеупомянутые предложения, у меня все еще были проблемы с разрешениями "Камера", "Фотографии", "Библиотека музыки" на iPod touch с iOS 9.3. Settings app > Privacy > Photos
не перечислено ни одного приложения Privacy > Camera
, или же Privacy > Media Library
). Приложение "Настройки" не содержало строки для моего приложения, поэтому у клиентов не было возможности изменить разрешения на конфиденциальность моего приложения.
Решение было открыть Settings app > General > Reset
затем нажмите Reset Location & Privacy
, Видимо, настройки конфиденциальности моего устройства как-то испортились. После сброса все эти проблемы были решены.
Для тех, кто все еще получает эту ошибку в iOS 10, это вопрос новых настроек конфиденциальности, реализованных в iOS 10.
В основном в Info.plist
, вы должны указать, почему вы хотите получить доступ к библиотеке фотографий, установив Privacy - Photo Library Usage Description
ключ (обратите внимание, это можно оставить пустой строкой).
Подробнее об этом здесь: http://useyourloaf.com/blog/privacy-settings-in-ios-10/
Это очень просто,
просто иди в
симулятор -> железо -> главная
затем в настройках телефона -> в вашем приложении -> теперь разрешить при перемещении опцию, как показано на рисунке ниже