UIImagePickerController在iOS10上崩溃

UIImagePickerController在iOS10上崩溃,ios,swift,uiimagepickercontroller,ios10,Ios,Swift,Uiimagepickercontroller,Ios10,在iOS10上显示带有照片库源的UIImagePickerController时,我的应用程序崩溃 在具有相机源的iOS10和具有照片库和相机源的iOS9上,应用程序不会崩溃 该应用程序是用Swift 2.2编写的,由Xcode 7.3.1构建 为什么会发生坠机 let imagePicker = UIImagePickerController() imagePicker.sourceType = .PhotoLibrary imagePicker.allowsEditing = true im

在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版本解决了崩溃问题。
这里也讨论了这个问题:

您可能需要在plist中添加nsCamerauseCompretation(如果您的应用程序使用相机)和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>
NSCameraUsageDescription
$(产品名称)需要访问才能使用您的相机
NSPhotoLibraryUsageDescription
$(产品名称)需要访问才能使用您的照片库

拉胡尔的答案是完美的。如果您喜欢直接将其添加到plist中,而不是通过plist的源代码,那么只需执行以下操作。

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

<key>NSCameraUsageDescription</key>
NSCameraUsageDescription
${PRODUCT_NAME}摄像头使用情况

<key>NSMicrophoneUsageDescription</key>
NSMicrophoneUsageDescription
${PRODUCT_NAME}话筒使用情况

<key>NSPhotoLibraryUsageDescription</key>
NSPhotoLibraryUsageDescription

${PRODUCT_NAME}照片库使用情况

必须在plist中添加密钥才能获得许可
隐私-相机使用说明
检查此项我已经添加了密钥。但是我的应用程序崩溃了。从你的日志中,我可以看到你正在使用UIImagePickerController,它正在使用PHPhotolobrary。但这两个库在iOS 10.0中经历了一些变化。请在此处的链接中查找更改。如果你能提供代码来更好地帮助你,这将对我们有所帮助。是的,有时候3部分可能不适合IOS10。谢谢,你解决了我的问题。如果您只是删除Leanplum.trackAllAppScreens()这一行,它也可以工作,但您可能不会收到应用程序内通知。我们使用Swift 3和Xcode 8进行了测试,无法重现您的问题。它似乎与Leanplum SDK无关,使用最新的Xcode版本可以解决这个问题。请另外通知我们;)