我正在尝试访问照片库以在swift 4中导入个人资料图片。
但我得到了这个错误:
此应用程序已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的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
}
}
}
我删除了应用程序并重新安装它,仍然崩溃
我忘记了什么吗?或者我做错了什么?
试试这个:
去你的plist。在最顶部,它应该说信息属性列表已选中此选项。然后右键单击并添加行类型隐私 - 照片库添加使用说明然后在右边有一个值列,需要您输入的文本,这是用户将看到的内容。我希望这有帮助!
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>
我只需在项目/信息/自定义IOS目标属性中添加密钥NSPhotoLibraryUsageDescription
。而不是info.plist
,现在它工作正常