【发布时间】:2018-07-27 07:41:54
【问题描述】:
我在应用中实现了以下代码,以允许用户向应用添加图像。然而,用户永远不会被要求获得访问照片的权限。我在这里错过了什么?
在我的 info.plist 中我设置了: 隐私 - 照片库使用说明 = 请提供对您照片库的访问权限
包标识符是: $(PRODUCT_BUNDLE_IDENTIFIER)
import UIKit
class NewPostXIB: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var image: UIImageView!
let imagePicker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
self.view.endEditing(true)
}
@IBAction func closeButton(_ sender: Any) {
dismiss(animated: false, completion: nil)
}
@IBAction func addImageButton(_ sender: Any) {
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
imagePicker.allowsEditing = true
imagePicker.sourceType = .photoLibrary
present(imagePicker, animated: true, completion: nil)
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
image.contentMode = .scaleAspectFill
image.image = pickedImage
}
dismiss(animated: false, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
【问题讨论】:
-
选择器出现了吗?
-
从手机中删除该应用,然后重试。
-
选择器出现并允许我选择图像。我已经删除了该应用,并重置了隐私设置 - 仍然没有请求许可
-
另外添加:隐私 - 照片库添加使用说明
-
我用的是iOS11。这太令人沮丧了!它按我想要的方式工作,但不要求许可,所以我知道如果我提交到 App Store 会被拒绝。即使我将我的照片库条目从 info.plist 中取出。卸载应用程序,重新安装并运行,授予对照片库的访问权限,没有崩溃或问题。我认为如果 info.plist 中没有条目,应用程序会崩溃 - 或者我在 Apple dev 网站上阅读!
标签: ios swift uiimagepickercontroller info.plist