diff --git a/packages/image_picker/CHANGELOG.md b/packages/image_picker/CHANGELOG.md index d8a170e47499..11c48e8724bc 100644 --- a/packages/image_picker/CHANGELOG.md +++ b/packages/image_picker/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.2 + +* iOS: Fixes an issue where picking conent from Gallery would result in a crash on iOS 13. + ## 0.6.1+11 * Stability and Maintainability: update documentations, add unit tests. diff --git a/packages/image_picker/ios/Classes/ImagePickerPlugin.m b/packages/image_picker/ios/Classes/ImagePickerPlugin.m index a23e13918148..5ac31a695a58 100644 --- a/packages/image_picker/ios/Classes/ImagePickerPlugin.m +++ b/packages/image_picker/ios/Classes/ImagePickerPlugin.m @@ -241,8 +241,30 @@ - (void)imagePickerController:(UIImagePickerController *)picker return; } if (videoURL != nil) { + if (@available(iOS 13.0, *)) { + NSString *fileName = [videoURL lastPathComponent]; + NSURL *destination = + [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:fileName]]; + + if ([[NSFileManager defaultManager] isReadableFileAtPath:[videoURL path]]) { + NSError *error; + if (![[videoURL path] isEqualToString:[destination path]]) { + [[NSFileManager defaultManager] copyItemAtURL:videoURL toURL:destination error:&error]; + + if (error) { + self.result([FlutterError errorWithCode:@"flutter_image_picker_copy_video_error" + message:@"Could not cache the video file." + details:nil]); + self.result = nil; + return; + } + } + videoURL = destination; + } + } self.result(videoURL.path); self.result = nil; + } else { UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; if (image == nil) { diff --git a/packages/image_picker/pubspec.yaml b/packages/image_picker/pubspec.yaml index 998d921005a1..bca5a9df2059 100755 --- a/packages/image_picker/pubspec.yaml +++ b/packages/image_picker/pubspec.yaml @@ -5,7 +5,7 @@ authors: - Flutter Team - Rhodes Davis Jr. homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker -version: 0.6.1+11 +version: 0.6.2 flutter: plugin: