UIImagePickerController 在 iOS10 上崩溃

UIImagePickerController crashes on iOS10

iOS10 上展示 UIImagePickerController 和照片库源时,我的应用程序崩溃了。

iOS10 上使用 相机源和在 iOS9 上使用照片库和相机源,应用程序不会崩溃。

该应用程序使用 Swift 2.2 编写,由 Xcode 7.3.1 构建。

为什么会发生崩溃?

let imagePicker = UIImagePickerController()
imagePicker.sourceType = .PhotoLibrary
imagePicker.allowsEditing = true
imagePicker.delegate = self
self.presentViewController(imagePicker, animated: true, completion: nil)

我通过更新到最新的 Xcode 版本解决了崩溃问题。 这里也讨论了这个问题:https://github.com/Leanplum/Leanplum-iOS-SDK/issues/12

您可能需要将 NSCameraUsageDescription(如果您的应用使用相机)和 NSPhotoLibraryUsageDescription(如果您的应用使用照片库)放入您的 plist。如下图,

<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to use your camera</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to use your photo library</string>

Rahul 的回答很完美。如果你更喜欢直接将它添加到你的 plist 中而不是通过 plist 的源代码,那么只需执行以下操作。

plist 中的权限键,用于相机权限(还需要麦克风权限)和照片库

<key>NSCameraUsageDescription</key>

${PRODUCT_NAME} 相机使用

<key>NSMicrophoneUsageDescription</key>

${PRODUCT_NAME} 麦克风使用

<key>NSPhotoLibraryUsageDescription</key>

${PRODUCT_NAME} 照片库使用