Ответ 1
Эта проблема появляется в iOS 9, когда файл вашего приложения Info.plist содержит ключ: "CFBundleDisplayName" с пустым значением строки.
Здесь вы можете ввести свое имя приложения, и оно должно работать.
Когда я обращаюсь к своей фотобиблиотеке с помощью UIImagePicker для выбора фотографии, приложение иногда показывает мне черный экран, а иногда и экран, в котором говорится, что я должен предоставить разрешения для моего приложения для доступа к фотографиям. Но когда я иду в Настройки → Конфиденциальность → Фотографии, там нет приложения, и приложение нигде не видно в настройках. Я прочитал, что должен добавить два значения в свой Info.plist, но они тоже не работали. Кто-нибудь работает с той же ошибкой? Im работает с 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)
}
Эта проблема появляется в iOS 9, когда файл вашего приложения Info.plist содержит ключ: "CFBundleDisplayName" с пустым значением строки.
Здесь вы можете ввести свое имя приложения, и оно должно работать.
В поле info.plist поле "Отображаемое имя пакета" не может быть пустым.
Если вы получаете этот экран, возможно, есть причины и решения:
1.Если вы не получаете предупреждения о разрешении на доступ.
Решение: 1. Добавьте CFBundleDisplayName и его значение в качестве названия приложения или всего, что вы хотите. 2. Добавьте NSPhotoLibraryUsageDescription в файл info.plist
2. Проверьте свои настройки → Конфиденциальность → Фотографии, конфиденциальность отключена или включена.
Решение. Включите конфиденциальность фотографий.
3.Если вы работаете на симуляторе и уже добавили CFBundleDisplayName, не получая предупреждения о доступе к фотографии.
Содействие. Убедитесь, что Xcode, который вы используете, должен находиться в папке Application, чтобы получить уведомление о доступе к разрешению.
это очень просто,
просто заходите в
симулятор → аппаратное обеспечение → Главная
затем в настройках телефона → в вашем приложении → теперь разрешить с помощью опции переключателя перемещения как показано ниже.
Для тех, кто все еще получает эту ошибку в iOS 10, речь идет о новых настройках конфиденциальности, реализованных в iOS 10.
В принципе, в Info.plist
вам нужно указать, почему вы хотите получить доступ к библиотеке фотографий, установив ключ Privacy - Photo Library Usage Description
(обратите внимание, что это может быть оставлено пустой строкой).
Подробнее об этом здесь: http://useyourloaf.com/blog/privacy-settings-in-ios-10/
Я понимаю, что это старый вопрос, но есть еще один последний совет, который можно предложить...
После выполнения вышеуказанных предложений у меня все еще были проблемы с разрешениями камеры, фотографий, музыкальной библиотеки на iPod touch, работающие под управлением iOS 9.3. В Settings app > Privacy > Photos
не указаны приложения (также не было Privacy > Camera
или Privacy > Media Library
). Приложение "Настройки" не содержало строку для моего приложения, поэтому клиенты не могли изменить мои права на доступ к конфиденциальности.
Решение должно было открыть Settings app > General > Reset
, а затем коснуться Reset Location & Privacy
. По-видимому, настройки конфиденциальности моего устройства каким-то образом были повреждены. После reset все эти проблемы были устранены.
ДЛЯ iOS10 In 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>