Приложение не имеет доступа к вашим фото или видео 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/

Это очень просто,

просто иди в

симулятор -> железо -> главная

затем в настройках телефона -> в вашем приложении -> теперь разрешить при перемещении опцию, как показано на рисунке ниже

Другие вопросы по тегам