代码之家  ›  专栏  ›  技术社区  ›  AngryDuck

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

  •  0
  • AngryDuck  · 技术社区  · 6 年前

    [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 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)
            }
        }
    }
    

    当我点击按钮,我看到没有权限提示,照片库只是出现,当我选择一张照片,我得到上面显示的错误?有什么我不知道的吗?

    我在iphonex上运行ios12,在Mojave beta的最新版本上运行xcode10.0

    1 回复  |  直到 6 年前
        1
  •  3
  •   sj-r    6 年前

    如果你只是使用 UIImagePickerController 来自iOS 11。使用时需要权限 AVFoundation Photos 框架。

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