Skip to content

Commit

Permalink
fix: photo selection in simulator on M1 macs (#1853)
Browse files Browse the repository at this point in the history
  • Loading branch information
dcwither committed Nov 15, 2021
1 parent 502c73e commit 416be5a
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions ios/ImagePickerManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -417,20 +417,28 @@ - (void)picker:(PHPickerViewController *)picker didFinishPicking:(NSArray<PHPick

dispatch_group_enter(completionGroup);

if ([provider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeImage]) {
[provider loadDataRepresentationForTypeIdentifier:(NSString *)kUTTypeImage completionHandler:^(NSData * _Nullable data, NSError * _Nullable error) {
if ([provider canLoadObjectOfClass:[UIImage class]]) {
NSString *identifier = provider.registeredTypeIdentifiers.firstObject;
if ([identifier isEqualToString:@"com.apple.live-photo-bundle"]) {
// Handle live photos
identifier = @"public.jpeg";
}

[provider loadFileRepresentationForTypeIdentifier:identifier completionHandler:^(NSURL * _Nullable url, NSError * _Nullable error) {
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] initWithData:data];

[assets addObject:[self mapImageToAsset:image data:data phAsset:asset]];
dispatch_group_leave(completionGroup);
}];
}

if ([provider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeMovie]) {
} else if ([provider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeMovie]) {
[provider loadFileRepresentationForTypeIdentifier:(NSString *)kUTTypeMovie completionHandler:^(NSURL * _Nullable url, NSError * _Nullable error) {
[assets addObject:[self mapVideoToAsset:url error:nil]];
dispatch_group_leave(completionGroup);
}];
} else {
// The provider didn't have an item matching photo or video (fails on M1 Mac Simulator)
dispatch_group_leave(completionGroup);
}
}

Expand Down

0 comments on commit 416be5a

Please sign in to comment.