Swift要求用户允许访问照片库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift要求用户允许访问照片库相关的知识,希望对你有一定的参考价值。

我正在尝试访问照片库以在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,现在它工作正常

以上是关于Swift要求用户允许访问照片库的主要内容,如果未能解决你的问题,请参考以下文章

如何允许用户使用 Swift 选择图像?

iOS:测试设备以允许访问照片库...重置设置

swift 使用Swift 4从用户设备访问相机,照片库,视频和文件

图像选择器崩溃 - iOS Swift

swift5如何在用户授予有限访问权限以选择某些照片后仅显示有限的照片库

Objective C - 如何检测用户点击了不允许访问照片按钮