Pranoy C Pranoy C - 4 months ago 409
iOS Question

iOS 10 error [access] <private> when using UIImagePickerController

I am using XCode 8 and testing with iOS 10.2 Beta.

I have added the Photos, PhotosUI and MobileCoreServices frameworks to project.

Very simple code:

#import <Photos/Photos.h>
#import <PhotosUI/PhotosUI.h>
#import <MobileCoreServices/MobileCoreServices.h>

@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, PHLivePhotoViewDelegate>

@property (strong, nonatomic) IBOutlet UIImageView *imageview;

@end


and implementation:

- (IBAction)grab:(UIButton *)sender{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsEditing = NO;
picker.delegate = self;

// make sure we include Live Photos (otherwise we'll only get UIImages)
NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto];
picker.mediaTypes = mediaTypes;

// bring up the picker
[self presentViewController:picker animated:YES completion:nil];
}


As soon as I tap the button, the app crashes with very useless error:

[access] <private>


That's it. Nothing else.

Using break statements, the app seems to crash at "presentViewController".

This is a brand new app and I don't have anything else in the UI other than the grab button.

Also, testing on iOS 9.3, this works fine. Am I missing something which might be changed in iOS 10?

Answer

You may need to put the NSPhotoLibraryUsageDescription in your plist. Like

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) uses photos</string>

Check all the usage descriptions here.

Comments