iOS 10 - 应用程序崩溃通过 UIImagePickerController 访问照片库或设备相机
iOS 10 - App crashes To access photo library or device camera via UIImagePickerController
下面是我访问照片库的代码
-(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 [=12=]x2000148, %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
然后我得到 线程 10:EXC_BAD_INTRUCTION 代码=exc_i386_invop,
相同的代码在 iOS 9 中运行良好。有人可以帮我解决这个问题吗?提前致谢。
在iOS10。您必须为相机和照片库设置隐私设置。
相机:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
图片库:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
IOS 10 Now Requires User Permission to Access Media Library, Photos,
Camera and other Hardware like these. The solution for this is to add
their keys into info.plist with description for user that how we are
using their data , iOS already required permissions to access
microphone, camera, and media library earlier (iOS6, iOS7), but since
iOS10 the apps will crash if you don't provide the description why you
are asking for the permission.
在 plist 文件中添加以下键值。
您可以在 Info.plist 文件中指定所有 Cocoa 键的列表
照片:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
麦克风:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
相机:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
下面是我访问照片库的代码
-(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 [=12=]x2000148, %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
然后我得到 线程 10:EXC_BAD_INTRUCTION 代码=exc_i386_invop, 相同的代码在 iOS 9 中运行良好。有人可以帮我解决这个问题吗?提前致谢。
在iOS10。您必须为相机和照片库设置隐私设置。
相机:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
图片库:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
IOS 10 Now Requires User Permission to Access Media Library, Photos, Camera and other Hardware like these. The solution for this is to add their keys into info.plist with description for user that how we are using their data , iOS already required permissions to access microphone, camera, and media library earlier (iOS6, iOS7), but since iOS10 the apps will crash if you don't provide the description why you are asking for the permission.
在 plist 文件中添加以下键值。
您可以在 Info.plist 文件中指定所有 Cocoa 键的列表
照片:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
麦克风:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
相机:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use