diff --git a/CHANGELOG.md b/CHANGELOG.md index 0864b2a..4330776 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.0.6 +iOS: Fixes iOS 14 media picker (image & video) (#405, #407). + ## 2.0.5 Android: Fixes [#402](https://github.com/miguelpruivo/flutter_file_picker/issues/402). diff --git a/ios/Classes/FilePickerPlugin.m b/ios/Classes/FilePickerPlugin.m index b46233d..b1edf0f 100644 --- a/ios/Classes/FilePickerPlugin.m +++ b/ios/Classes/FilePickerPlugin.m @@ -369,8 +369,35 @@ didPickDocumentsAtURLs:(NSArray *)urls{ for (PHPickerResult *result in results) { dispatch_group_enter(group); - [result.itemProvider loadInPlaceFileRepresentationForTypeIdentifier:@"public.item" completionHandler:^(NSURL * _Nullable url, BOOL isInPlace, NSError * _Nullable error) { - [urls addObject:url]; + [result.itemProvider loadFileRepresentationForTypeIdentifier:@"public.item" completionHandler:^(NSURL * _Nullable url, NSError * _Nullable error) { + + if(url == nil) { + Log("Could not load the picked given file: %@", error); + dispatch_group_leave(group); + return; + } + + NSString * filename = url.lastPathComponent; + NSString * cachedFile = [NSTemporaryDirectory() stringByAppendingPathComponent:filename]; + + NSFileManager * fileManager = NSFileManager.defaultManager; + + if([fileManager fileExistsAtPath:cachedFile]) { + [fileManager removeItemAtPath:cachedFile error:NULL]; + } + + NSURL * cachedUrl = [NSURL fileURLWithPath: cachedFile]; + NSError *copyError; + [NSFileManager.defaultManager copyItemAtURL: url + toURL: cachedUrl + error: ©Error]; + + if (copyError) { + Log("%@ Error while caching picked file: %@", self, copyError); + return; + } + + [urls addObject:cachedUrl]; dispatch_group_leave(group); }]; } diff --git a/pubspec.yaml b/pubspec.yaml index 60948ca..6cc9f78 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: file_picker description: A package that allows you to use a native file explorer to pick single or multiple absolute file paths, with extension filtering support. homepage: https://github.com/miguelpruivo/plugins_flutter_file_picker -version: 2.0.5 +version: 2.0.6 dependencies: flutter: