iOS 10 - 应用程序崩溃,在通过UIImagePickerController访问照片库或设备相机时。

3
以下是我访问照片库的代码。
-(void)click_gallery
{

    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
     {

    UIImagePickerController *imgPicker= [[UIImagePickerController alloc] init];
    UIColor* color = [UIColor colorWithRed:46.0/255 green:127.0/255 blue:244.0/255 alpha:1];
    [imgPicker.navigationBar setTintColor:color];
    imgPicker.delegate = self;
    imgPicker.allowsEditing = YES;
    imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    [self presentViewController:imgPicker animated:NO completion:Nil];
     }

}

这个应用程序因为以下原因而中止:

该应用程序试图在没有使用说明的情况下访问涉及隐私的数据。 应用程序的Info.plist必须包含一个NSCameraUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。

libsystem_kernel.dylib`__pthread_kill:
    0x109955efc <+0>:  movl   $0x2000148, %eax          ; imm = 0x2000148 
    0x109955f01 <+5>:  movq   %rcx, %r10
    0x109955f04 <+8>:  syscall 
->  0x109955f06 <+10>: jae    0x109955f10               ; <+20>
    0x109955f08 <+12>: movq   %rax, %rdi
    0x109955f0b <+15>: jmp    0x1099507cd               ; cerror_nocancel
    0x109955f10 <+20>: retq   
    0x109955f11 <+21>: nop    
    0x109955f12 <+22>: nop    
    0x109955f13 <+23>: nop    

我收到了Thread 10:EXC_BAD_INTRUCTION code=exc_i386_invop的错误信息,同样的代码在iOS 9中运行正常。请有人帮我解决这个问题。谢谢。

2个回答

10

iOS 10 中,您需要设置相机和照片库的隐私设置。

相机:

Key       :  Privacy - Camera Usage Description   
Value     :  $(PRODUCT_NAME) camera use

照片库:

Key       :  Privacy - Photo Library Usage Description    
Value     :  $(PRODUCT_NAME) photo use

1
IOS 10现在需要用户许可才能访问媒体库、照片、相机等硬件。解决方法是将它们的密钥添加到info.plist中,并向用户说明我们如何使用他们的数据。iOS早期版本(iOS6、iOS7)已经要求许可才能访问麦克风、相机和媒体库,但自从iOS10以来,如果不提供请求许可的原因描述,应用将会崩溃。
在plist文件中添加以下键值。
有一个所有Cocoa Keys的列表,您可以在Info.plist文件中指定。
照片:
Key       :  Privacy - Photo Library Usage Description    
Value   :  $(PRODUCT_NAME) photo use

麦克风:

Key        :  Privacy - Microphone Usage Description    
Value    :  $(PRODUCT_NAME) microphone use

Camera :

Key       :  Privacy - Camera Usage Description   
Value   :  $(PRODUCT_NAME) camera use

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接