问题
Below is my code to access photo library
-(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];
}
}
And it aborts with
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
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
And I get Thread 10:EXC_BAD_INTRUCTION code=exc_i386_invop, Same code was working fine in iOS 9. Can someone help me to solve this issue. Thanks in Advance.
回答1:
In iOS 10. You have to set privacy Setting for Camera & Photo Library.
Camera :
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
Photo Library:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
回答2:
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.
Add below key value in plist file.
There is a list of all Cocoa Keys that you can specify in your Info.plist file
Photo :
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Microphone :
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Camera :
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
来源:https://stackoverflow.com/questions/39738804/ios-10-app-crashes-to-access-photo-library-or-device-camera-via-uiimagepickerc