UIImagePickerController在iOS10上崩溃

时间:2016-09-21 08:39:35

标签: ios swift uiimagepickercontroller 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)

stack trace

4 个答案:

答案 0 :(得分:51)

您可能需要在plist中放置NSCameraUsageDescription(如果您的应用使用相机)和NSPhotoLibraryUsageDescription(如果您的应用使用照片库)。如下所示,

<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>

答案 1 :(得分:29)

Rahul的回答是完美的。如果您希望将其直接添加到plist中而不是通过plist的源代码,那么只需执行以下操作即可。 plist additions

答案 2 :(得分:1)

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

答案 3 :(得分:1)

plist中的权限密钥用于权限相机(也需要麦克风权限)和PhotoLibrary

<key>NSCameraUsageDescription</key>

$ {PRODUCT_NAME}相机使用

<key>NSMicrophoneUsageDescription</key>

$ {PRODUCT_NAME}麦克风使用

<key>NSPhotoLibraryUsageDescription</key>

$ {PRODUCT_NAME} PhotoLibrary用法