App does not have access to your photos or videos iOS 9

When I access my Photo Library with an UIImagePicker to choose a photo, the app shows me sometimes a black screen and sometimes a screen that says that I have to give permissions to my app to access the photos. But when I go to Settings -> Privacy -> Photos, there’s no app there and the app is nowhere to be seen in Settings. I read that I must add two values to my Info.plist but they didn’t worked either. Have anyone run with the same error? I’m working with xcode 7, swift 2.0 and iOS 9

This is where i prompt for user for Camera access

@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)

}

Answers


This issue appear in iOS 9 when your application Info.plist file contains a key: "CFBundleDisplayName" with empty string value.

You can enter your app name there and it should work.


In info.plist, "Bundle display name" field can not be empty.

Example


If you are getting this screen there are probably below reasons and solutions :

1.If you are not getting access permission alert.

Solution : 1. Add CFBundleDisplayName and its value as you application title or anything you want. 2. Add NSPhotoLibraryUsageDescription in info.plist file

2.Check your Settings -> Privacy -> Photos, privacy is disabled or enable.

Solution : Enable privacy for photos.

3.If you are working on simulator and have already added CFBundleDisplayName not getting alert for photo access.

Solation : Make sure Xcode you are using must be in Application folder to get permission access alert.


it is very simple,

just go in

simulator -> hardware -> Home

then in phone's settings -> in your app -> now allow by move switch option like below image


For those still getting this error in iOS 10, it is a question of new Privacy settings implemented in iOS 10.

Basically, in the Info.plist, you have to state why you want to access the Photo library by setting the Privacy - Photo Library Usage Description key (note, this can be left to a blank string).

More about it here: http://useyourloaf.com/blog/privacy-settings-in-ios-10/


I realize that this is an old question, but have one other last-ditch tip to offer...

After trying the above suggestions, I still had Camera, Photos, Music Library permissions issues on an iPod touch running iOS 9.3. The Settings app > Privacy > Photos listed no apps (neither did Privacy > Camera, or Privacy > Media Library). The Settings app did not contain a row for my app, so there was no way for customers to change my app's Privacy permissions.

The solution was to open the Settings app > General > Reset, then tap Reset Location & Privacy. Apparently, my device's privacy settings had somehow become corrupted. After the reset, all these issues were resolved.


FOR iOS10 In info.plist

"CFBundleDisplayName" enter your app name

<key>CFBundleDisplayName</key>
<string>IMS Food-taxi</string> 

and "NSPhotoLibraryUsageDescription" add description

<key>NSPhotoLibraryUsageDescription</key>
<string>you will need to give the app permission to use the Photos.</string>

Need Your Help

When to use []byte or string in Go?

string bytearray go

Frequently in writing Go applications, I find myself with the choice to use []byte or string. Apart from the obvious mutability of []byte, how do I decide which one to use?