diff --git a/packages/image_picker/image_picker_ios/CHANGELOG.md b/packages/image_picker/image_picker_ios/CHANGELOG.md index d89ca6e11f0a..58dae8e1b635 100644 --- a/packages/image_picker/image_picker_ios/CHANGELOG.md +++ b/packages/image_picker/image_picker_ios/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.13+6 + +* Replaces deprecated `kUTTypeGIF` with `UTTypeGIF` to fix iOS 15+ deprecation warnings. + ## 0.8.13+5 * Fixes camera confirmation buttons (e.g., Retake/Use Photo) taps passing through to the underlying Flutter UI while the picker is dismissing on some iOS versions (e.g., iOS 26). diff --git a/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerImageUtil.m b/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerImageUtil.m index b8b2f54f84c3..a8aa5593a547 100644 --- a/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerImageUtil.m +++ b/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerImageUtil.m @@ -4,6 +4,7 @@ #import "FLTImagePickerImageUtil.h" #import +#import @interface GIFInfo () @@ -117,7 +118,13 @@ + (GIFInfo *)scaledGIFImage:(NSData *)data maxHeight:(NSNumber *)maxHeight { NSMutableDictionary *options = [NSMutableDictionary dictionary]; options[(NSString *)kCGImageSourceShouldCache] = @YES; - options[(NSString *)kCGImageSourceTypeIdentifierHint] = (NSString *)kUTTypeGIF; + NSString *gifTypeIdentifier; + if (@available(iOS 14.0, *)) { + gifTypeIdentifier = UTTypeGIF.identifier; + } else { + gifTypeIdentifier = (NSString *)kUTTypeGIF; + } + options[(NSString *)kCGImageSourceTypeIdentifierHint] = gifTypeIdentifier; CGImageSourceRef imageSource = CGImageSourceCreateWithData((__bridge CFDataRef)data, (__bridge CFDictionaryRef)options); diff --git a/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPhotoAssetUtil.m b/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPhotoAssetUtil.m index ea9130f1ae05..1bb7b4f8aa67 100644 --- a/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPhotoAssetUtil.m +++ b/packages/image_picker/image_picker_ios/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPhotoAssetUtil.m @@ -7,6 +7,7 @@ #import "FLTImagePickerMetaDataUtil.h" #import +#import @implementation FLTImagePickerPhotoAssetUtil @@ -98,8 +99,14 @@ + (NSString *)saveImageWithMetaData:(NSDictionary *)metaData + (NSString *)saveImageWithMetaData:(NSDictionary *)metaData gifInfo:(GIFInfo *)gifInfo path:(NSString *)path { + CFStringRef imageType; + if (@available(iOS 14.0, *)) { + imageType = (__bridge CFStringRef)UTTypeGIF.identifier; + } else { + imageType = kUTTypeGIF; + } CGImageDestinationRef destination = CGImageDestinationCreateWithURL( - (__bridge CFURLRef)[NSURL fileURLWithPath:path], kUTTypeGIF, gifInfo.images.count, NULL); + (__bridge CFURLRef)[NSURL fileURLWithPath:path], imageType, gifInfo.images.count, NULL); NSDictionary *frameProperties = @{ (__bridge NSString *)kCGImagePropertyGIFDictionary : @{ diff --git a/packages/image_picker/image_picker_ios/pubspec.yaml b/packages/image_picker/image_picker_ios/pubspec.yaml index 94907a616a44..076169304097 100755 --- a/packages/image_picker/image_picker_ios/pubspec.yaml +++ b/packages/image_picker/image_picker_ios/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker_ios description: iOS implementation of the image_picker plugin. repository: https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker_ios issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22 -version: 0.8.13+5 +version: 0.8.13+6 environment: sdk: ^3.10.0