UIImagePicker 控制器即使有 plist 条目也不请求权限

UIImagePicker Controller doesn't request permission even with plist entry

我在使用 UIImagePickerController 时遇到问题。我希望能够打开照片库和 select 图片,当我打开时出现以下错误

[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}`

我认为这可能是一个权限错误,因为我错误地没有在我的 plist 中添加一行用于访问照片,所以我添加了用于访问照片库的条目:

Privacy - Photo library Usage Description,类型 string,值设置为 photo use

当我尝试访问照片时,仍然没有提示我访问照片的权限。

为了尽量减少任何其他导致问题的问题,我创建了一个新项目,它只有一个视图控制器和 plist 中的上述条目,下面显示了此 class

中的唯一代码
class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate
{
    var mImagePicker:UIImagePickerController?

    override func viewDidLoad()
    {
        super.viewDidLoad()
       // Do any additional setup after loading the view, typically from a nib.
    }

    @IBAction func tapped(_ sender: Any)
    {
        // Pick an image from the photo library
        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary)
        {
            mImagePicker = UIImagePickerController()
            mImagePicker!.delegate = self
            mImagePicker!.sourceType = .photoLibrary;
            mImagePicker!.allowsEditing = false
            self.present(mImagePicker!, animated: true, completion: nil)
        }
    }
}

当我点击按钮时,我没有看到请求权限的提示,只是出现了照片库,当我 select 一张照片时,我得到了上面显示的错误?我在这里遗漏了什么吗?

Im 运行 iOS 12 在 iPhone X 和 Xcode 10.0 在最新版本的 Mojave beta

如果您只是使用 UIImagePickerController 从 iOS 访问照片,则实际上不需要许可 11. 使用 AVFoundationPhotos 时需要许可框架。

根据我的经验,iOS 会记录那些我们有时可以忽略的错误,我认为这次您可以忽略错误消息。