应用无法访问您的照片或视频iOS 9

时间:2015-09-24 18:02:55

标签: ios ios9

当我使用UIImagePicker访问我的照片库以选择照片时,该应用程序有时会向我显示黑屏,有时会显示一个屏幕,说明我必须授予我的应用访问照片的权限。但是当我去设置 - >隐私 - >照片,那里没有应用程序,应用程序无法在设置中看到。我读到我必须在我的Info.plist中添加两个值,但它们也没有用。有没有人运行相同的错误?我正在使用xcode 7,swift 2.0和iOS 9

enter image description here

这是我提示用户进行相机访问的地方

@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 个答案:

答案 0 :(得分:52)

当您的应用程序Info.plist文件包含密钥时,此问题会出现在iOS 9中:" CFBundleDisplayName"空字符串值。

您可以在那里输入您的应用名称,它应该有效。

答案 1 :(得分:6)

在info.plist中,"捆绑显示名称"字段不能为空。

Example

答案 2 :(得分:4)

如果你有这个屏幕,可能有以下原因和解决方案:

1.如果您没有获得访问权限警报。

解决方案:1。添加 CFBundleDisplayName 及其值作为应用程序标题或您想要的任何内容。 2.在info.plist文件中添加 NSPhotoLibraryUsageDescription

2.检查您的设置 - >隐私 - >照片,隐私被禁用或启用。

解决方案:为照片启用隐私。

3.如果您正在使用模拟器并且已经添加了CFBundleDisplayName而没有获取照片访问的警报。

Solation :确保您使用的Xcode必须位于应用程序文件夹中才能获得权限访问警报。

答案 3 :(得分:0)

非常简单,

进入

模拟器 - >硬件 - >主页

然后在手机的设置中 - >在您的应用中 - >现在允许通过移动开关选项like below image

答案 4 :(得分:0)

对于仍然在 iOS 10 中出现此错误的用户,这是iOS 10中实施的新隐私设置的问题。

基本上,在Info.plist中,你必须通过设置Privacy - Photo Library Usage Description键来说明你想要访问Photo库的原因(注意,这可以留给空白字符串)。

更多相关信息: http://useyourloaf.com/blog/privacy-settings-in-ios-10/

答案 5 :(得分:0)

我意识到这是一个古老的问题,但还有另一个最后提示......

在尝试上述建议后,我仍然在运行iOS 9.3的iPod touch上有相机,照片,音乐库权限问题。 Settings app > Privacy > Photos未列出任何应用(Privacy > CameraPrivacy > Media Library)。 “设置”应用不包含我的应用的行,因此客户无法更改我应用的隐私权限。

解决方案是打开Settings app > General > Reset,然后点按Reset Location & Privacy。显然,我的设备的隐私设置已经以某种方式被破坏。重置后,所有这些问题都得到了解决。

答案 6 :(得分:0)

FOR iOS10在info.plist

" CFBundleDisplayName"输入您的应用名称

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

和&#34; NSPhotoLibraryUsageDescription&#34;添加说明

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