Swift询问用户是否有权访问照片库

时间:2018-11-14 19:27:16

标签: ios swift permissions swift4

我正在尝试访问照片库以快速导入个人资料图像。

但是我遇到了这个错误:

  

此应用已崩溃,因为它尝试访问对隐私敏感的应用   没有使用说明的数据。应用程序的Info.plist必须包含   一个NSPhotoLibraryUsageDescription键,其字符串值说明   向用户显示应用程序如何使用这些数据。

我以各种方式寻求许可。

我尝试:

<key>NSPhotoLibraryUsageDescription</key>
    <string>this permission for profile photo only</string>

和代码:

let imagePicker = UIImagePickerController()
 override func viewDidLoad() {
     super.viewDidLoad()
     imagePicker.delegate = self
}
@objc func importUserImage() {
        print("import driver")

        imagePicker.sourceType = .photoLibrary
        imagePicker.allowsEditing = true
        self.present(imagePicker, animated: true)
    }

我尝试

<key>NSPhotoLibraryAddUsageDescription</key>
    <string>this permission for profile photo only</string>

我什至尝试用代码来实现

import UIKit
import Photos
import UserNotifications

class LoginViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        PHPhotoLibrary.requestAuthorization { (status) in
            // cruch here
        }
     }
}

我删除了该应用并重新安装,仍然崩溃

我忘记了什么吗?还是我做错了什么?

3 个答案:

答案 0 :(得分:0)

尝试一下:

转到您的列表。在最顶部,应该说信息属性列表已选中此选项。然后右键单击并添加行,键入隐私-图片库添加用途说明,然后在右侧显示一个值列,该列需要您输入文本,这就是用户等着瞧。我希望这会有所帮助!

答案 1 :(得分:0)

NSPhotoLibraryUsageDescription就足够了,如果只想访问用户照片库,您的以下代码就可以正常工作

PHPhotoLibrary.requestAuthorization { (status) in
   // No crash
}

如果需要读写权限,请将以下两个键添加到info.plist

<key>NSPhotoLibraryUsageDescription</key>
<string>this permission for profile photo only</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>this permission for profile photo only</string>

答案 2 :(得分:0)

我只需在项目/信息/自定义IOS目标属性中添加密钥NSPhotoLibraryUsageDescription。而不是info.plist,现在可以正常使用

相关问题