【问题标题】:Swift Ask for user’s permission to access the photo librarySwift 请求用户访问照片库的权限
【发布时间】:2019-04-17 20:22:10
【问题描述】:

我正在尝试访问照片库以在 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
        }
     }
}

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

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

【问题讨论】:

  • 在检查状态是否被授予后,将相机初始化代码移动到请求授权闭包中,看看它是否崩溃。
  • @Rikh 我试了一下,仍然崩溃,崩溃发生在我获得状态之前的关闭行

标签: ios swift permissions swift4


【解决方案1】:

我只是在 Project/info/Custom IOS Target Properties 中添加密钥 NSPhotoLibraryUsageDescription 。而不是info.plist,现在它工作正常

【讨论】:

    【解决方案2】:

    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>
    

    【讨论】:

      【解决方案3】:

      试试这个:

      转到您的列表。在最顶部,应该说 Information Property List 已选择此选项。然后右键单击并 Add Row 输入 Privacy - Photo Library Additions Usage Description 然后在右侧有一个值列需要您输入文本,这就是用户等着瞧。我希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        • 1970-01-01
        • 2017-10-12
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多