Fixed Location & Storage issues

This commit is contained in:
2024-05-25 11:05:02 +09:00
parent e55674e1b9
commit 6a49aed98d
861 changed files with 80074 additions and 402 deletions

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.org.cocoapods.image-picker-ios</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>0.0.1</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -0,0 +1,196 @@
---
triple: 'arm64-apple-darwin'
binary-path: '/Volumes/PortableSSD1TB/main/GifuTabi/rog_app/Flutter/Release/iphoneos/Release-iphoneos/image_picker_ios/image_picker_ios.framework/image_picker_ios'
relocations:
- { offsetInCU: 0x34, offset: 0x7202B, size: 0x8, addend: 0x0, symName: _image_picker_iosVersionString, symObjAddr: 0x0, symBinAddr: 0xC8C8, symSize: 0x0 }
- { offsetInCU: 0x69, offset: 0x72060, size: 0x8, addend: 0x0, symName: _image_picker_iosVersionNumber, symObjAddr: 0x30, symBinAddr: 0xC8F8, symSize: 0x0 }
- { offsetInCU: 0x27, offset: 0x7209D, size: 0x8, addend: 0x0, symName: '-[GIFInfo initWithImages:interval:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x84 }
- { offsetInCU: 0xE9, offset: 0x7215F, size: 0x8, addend: 0x0, symName: '-[GIFInfo initWithImages:interval:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x84 }
- { offsetInCU: 0x140, offset: 0x721B6, size: 0x8, addend: 0x0, symName: '-[GIFInfo images]', symObjAddr: 0x84, symBinAddr: 0x4084, symSize: 0x8 }
- { offsetInCU: 0x177, offset: 0x721ED, size: 0x8, addend: 0x0, symName: '-[GIFInfo setImages:]', symObjAddr: 0x8C, symBinAddr: 0x408C, symSize: 0xC }
- { offsetInCU: 0x1B8, offset: 0x7222E, size: 0x8, addend: 0x0, symName: '-[GIFInfo interval]', symObjAddr: 0x98, symBinAddr: 0x4098, symSize: 0x8 }
- { offsetInCU: 0x1ED, offset: 0x72263, size: 0x8, addend: 0x0, symName: '-[GIFInfo setInterval:]', symObjAddr: 0xA0, symBinAddr: 0x40A0, symSize: 0x8 }
- { offsetInCU: 0x22B, offset: 0x722A1, size: 0x8, addend: 0x0, symName: '-[GIFInfo .cxx_destruct]', symObjAddr: 0xA8, symBinAddr: 0x40A8, symSize: 0xC }
- { offsetInCU: 0x25E, offset: 0x722D4, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerImageUtil scaledImage:maxWidth:maxHeight:isMetadataAvailable:]', symObjAddr: 0xB4, symBinAddr: 0x40B4, symSize: 0x240 }
- { offsetInCU: 0x49E, offset: 0x72514, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerImageUtil scaledGIFImage:maxWidth:maxHeight:]', symObjAddr: 0x2F4, symBinAddr: 0x42F4, symSize: 0x2C8 }
- { offsetInCU: 0x27, offset: 0x727F2, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:]', symObjAddr: 0x0, symBinAddr: 0x45BC, symSize: 0x58 }
- { offsetInCU: 0x41, offset: 0x7280C, size: 0x8, addend: 0x0, symName: _kFLTImagePickerDefaultSuffix, symObjAddr: 0x388, symBinAddr: 0x142A0, symSize: 0x0 }
- { offsetInCU: 0x61, offset: 0x7282C, size: 0x8, addend: 0x0, symName: _kFLTImagePickerMIMETypeDefault, symObjAddr: 0x3A8, symBinAddr: 0xC900, symSize: 0x0 }
- { offsetInCU: 0xC9, offset: 0x72894, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:]', symObjAddr: 0x0, symBinAddr: 0x45BC, symSize: 0x58 }
- { offsetInCU: 0x11C, offset: 0x728E7, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerMetaDataUtil imageTypeSuffixFromType:]', symObjAddr: 0x58, symBinAddr: 0x4614, symSize: 0x20 }
- { offsetInCU: 0x15D, offset: 0x72928, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerMetaDataUtil getMetaDataFromImageData:]', symObjAddr: 0x78, symBinAddr: 0x4634, symSize: 0x44 }
- { offsetInCU: 0x250, offset: 0x72A1B, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerMetaDataUtil imageFromImage:withMetaData:]', symObjAddr: 0xBC, symBinAddr: 0x4678, symSize: 0xF4 }
- { offsetInCU: 0x41B, offset: 0x72BE6, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerMetaDataUtil convertImage:usingType:quality:]', symObjAddr: 0x1B0, symBinAddr: 0x476C, symSize: 0xE4 }
- { offsetInCU: 0x27, offset: 0x72D0F, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil getAssetFromImagePickerInfo:]', symObjAddr: 0x0, symBinAddr: 0x4850, symSize: 0x14 }
- { offsetInCU: 0x8C, offset: 0x72D74, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil getAssetFromImagePickerInfo:]', symObjAddr: 0x0, symBinAddr: 0x4850, symSize: 0x14 }
- { offsetInCU: 0xCF, offset: 0x72DB7, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil getAssetFromPHPickerResult:]', symObjAddr: 0x14, symBinAddr: 0x4864, symSize: 0xE0 }
- { offsetInCU: 0x122, offset: 0x72E0A, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil saveVideoFromURL:]', symObjAddr: 0xF4, symBinAddr: 0x4944, symSize: 0x150 }
- { offsetInCU: 0x199, offset: 0x72E81, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil saveImageWithOriginalImageData:image:maxWidth:maxHeight:imageQuality:]', symObjAddr: 0x244, symBinAddr: 0x4A94, symSize: 0x208 }
- { offsetInCU: 0x26F, offset: 0x72F57, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil saveImageWithPickerInfo:image:imageQuality:]', symObjAddr: 0x44C, symBinAddr: 0x4C9C, symSize: 0xC4 }
- { offsetInCU: 0x2E6, offset: 0x72FCE, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil saveImageWithMetaData:gifInfo:suffix:]', symObjAddr: 0x510, symBinAddr: 0x4D60, symSize: 0x98 }
- { offsetInCU: 0x35D, offset: 0x73045, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil saveImageWithMetaData:image:suffix:type:imageQuality:]', symObjAddr: 0x5A8, symBinAddr: 0x4DF8, symSize: 0xFC }
- { offsetInCU: 0x413, offset: 0x730FB, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil saveImageWithMetaData:gifInfo:path:]', symObjAddr: 0x6A4, symBinAddr: 0x4EF4, symSize: 0x318 }
- { offsetInCU: 0x5F1, offset: 0x732D9, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil temporaryFilePath:]', symObjAddr: 0x9BC, symBinAddr: 0x520C, symSize: 0xE0 }
- { offsetInCU: 0x69E, offset: 0x73386, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPhotoAssetUtil createFile:suffix:]', symObjAddr: 0xA9C, symBinAddr: 0x52EC, symSize: 0x88 }
- { offsetInCU: 0x27, offset: 0x734BF, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext initWithResult:]', symObjAddr: 0x0, symBinAddr: 0x5374, symSize: 0x78 }
- { offsetInCU: 0x2A6, offset: 0x7373E, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext initWithResult:]', symObjAddr: 0x0, symBinAddr: 0x5374, symSize: 0x78 }
- { offsetInCU: 0x2ED, offset: 0x73785, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext result]', symObjAddr: 0x78, symBinAddr: 0x53EC, symSize: 0x8 }
- { offsetInCU: 0x324, offset: 0x737BC, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext setResult:]', symObjAddr: 0x80, symBinAddr: 0x53F4, symSize: 0x8 }
- { offsetInCU: 0x363, offset: 0x737FB, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext maxSize]', symObjAddr: 0x88, symBinAddr: 0x53FC, symSize: 0x8 }
- { offsetInCU: 0x39A, offset: 0x73832, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext setMaxSize:]', symObjAddr: 0x90, symBinAddr: 0x5404, symSize: 0xC }
- { offsetInCU: 0x3DB, offset: 0x73873, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext imageQuality]', symObjAddr: 0x9C, symBinAddr: 0x5410, symSize: 0x8 }
- { offsetInCU: 0x412, offset: 0x738AA, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext setImageQuality:]', symObjAddr: 0xA4, symBinAddr: 0x5418, symSize: 0xC }
- { offsetInCU: 0x453, offset: 0x738EB, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext maxImageCount]', symObjAddr: 0xB0, symBinAddr: 0x5424, symSize: 0x8 }
- { offsetInCU: 0x48A, offset: 0x73922, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext setMaxImageCount:]', symObjAddr: 0xB8, symBinAddr: 0x542C, symSize: 0x8 }
- { offsetInCU: 0x4C7, offset: 0x7395F, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext requestFullMetadata]', symObjAddr: 0xC0, symBinAddr: 0x5434, symSize: 0x8 }
- { offsetInCU: 0x4FE, offset: 0x73996, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext setRequestFullMetadata:]', symObjAddr: 0xC8, symBinAddr: 0x543C, symSize: 0x8 }
- { offsetInCU: 0x539, offset: 0x739D1, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext includeVideo]', symObjAddr: 0xD0, symBinAddr: 0x5444, symSize: 0x8 }
- { offsetInCU: 0x570, offset: 0x73A08, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext setIncludeVideo:]', symObjAddr: 0xD8, symBinAddr: 0x544C, symSize: 0x8 }
- { offsetInCU: 0x5AB, offset: 0x73A43, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerMethodCallContext .cxx_destruct]', symObjAddr: 0xE0, symBinAddr: 0x5454, symSize: 0x3C }
- { offsetInCU: 0x5DE, offset: 0x73A76, size: 0x8, addend: 0x0, symName: '+[FLTImagePickerPlugin registerWithRegistrar:]', symObjAddr: 0x11C, symBinAddr: 0x5490, symSize: 0x78 }
- { offsetInCU: 0x68B, offset: 0x73B23, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin createImagePickerController]', symObjAddr: 0x194, symBinAddr: 0x5508, symSize: 0xB4 }
- { offsetInCU: 0x6E1, offset: 0x73B79, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin setImagePickerControllerOverrides:]', symObjAddr: 0x248, symBinAddr: 0x55BC, symSize: 0x30 }
- { offsetInCU: 0x724, offset: 0x73BBC, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin viewControllerWithWindow:]', symObjAddr: 0x278, symBinAddr: 0x55EC, symSize: 0x1D0 }
- { offsetInCU: 0x79E, offset: 0x73C36, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin cameraDeviceForSource:]', symObjAddr: 0x448, symBinAddr: 0x57BC, symSize: 0x20 }
- { offsetInCU: 0x7E1, offset: 0x73C79, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin launchPHPickerWithContext:]', symObjAddr: 0x468, symBinAddr: 0x57DC, symSize: 0x214 }
- { offsetInCU: 0x844, offset: 0x73CDC, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin launchUIImagePickerWithSource:context:]', symObjAddr: 0x67C, symBinAddr: 0x59F0, symSize: 0x1DC }
- { offsetInCU: 0x8A7, offset: 0x73D3F, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin pickImageWithSource:maxSize:quality:fullMetadata:completion:]', symObjAddr: 0x858, symBinAddr: 0x5BCC, symSize: 0x184 }
- { offsetInCU: 0x93A, offset: 0x73DD2, size: 0x8, addend: 0x0, symName: '___84-[FLTImagePickerPlugin pickImageWithSource:maxSize:quality:fullMetadata:completion:]_block_invoke', symObjAddr: 0x9DC, symBinAddr: 0x5D50, symSize: 0xE4 }
- { offsetInCU: 0x9D8, offset: 0x73E70, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0xAC0, symBinAddr: 0x5E34, symSize: 0x10 }
- { offsetInCU: 0xA01, offset: 0x73E99, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0xAD0, symBinAddr: 0x5E44, symSize: 0x8 }
- { offsetInCU: 0xA20, offset: 0x73EB8, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin pickMultiImageWithMaxSize:quality:fullMetadata:completion:]', symObjAddr: 0xAD8, symBinAddr: 0x5E4C, symSize: 0x11C }
- { offsetInCU: 0xAA3, offset: 0x73F3B, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin pickMediaWithMediaSelectionOptions:completion:]', symObjAddr: 0xBF4, symBinAddr: 0x5F68, symSize: 0x160 }
- { offsetInCU: 0xB06, offset: 0x73F9E, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin pickVideoWithSource:maxDuration:completion:]', symObjAddr: 0xD54, symBinAddr: 0x60C8, symSize: 0x274 }
- { offsetInCU: 0xBAA, offset: 0x74042, size: 0x8, addend: 0x0, symName: '___67-[FLTImagePickerPlugin pickVideoWithSource:maxDuration:completion:]_block_invoke', symObjAddr: 0xFC8, symBinAddr: 0x633C, symSize: 0xE4 }
- { offsetInCU: 0xC48, offset: 0x740E0, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin cancelInProgressCall]', symObjAddr: 0x10AC, symBinAddr: 0x6420, symSize: 0x88 }
- { offsetInCU: 0xC7C, offset: 0x74114, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin showCamera:withImagePicker:]', symObjAddr: 0x1134, symBinAddr: 0x64A8, symSize: 0x280 }
- { offsetInCU: 0xCF2, offset: 0x7418A, size: 0x8, addend: 0x0, symName: '___51-[FLTImagePickerPlugin showCamera:withImagePicker:]_block_invoke', symObjAddr: 0x13B4, symBinAddr: 0x6728, symSize: 0x4 }
- { offsetInCU: 0xD28, offset: 0x741C0, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin checkCameraAuthorizationWithImagePicker:camera:]', symObjAddr: 0x13B8, symBinAddr: 0x672C, symSize: 0xF0 }
- { offsetInCU: 0xD8F, offset: 0x74227, size: 0x8, addend: 0x0, symName: '___71-[FLTImagePickerPlugin checkCameraAuthorizationWithImagePicker:camera:]_block_invoke', symObjAddr: 0x14A8, symBinAddr: 0x681C, symSize: 0x78 }
- { offsetInCU: 0xE2F, offset: 0x742C7, size: 0x8, addend: 0x0, symName: '___71-[FLTImagePickerPlugin checkCameraAuthorizationWithImagePicker:camera:]_block_invoke_2', symObjAddr: 0x1520, symBinAddr: 0x6894, symSize: 0x20 }
- { offsetInCU: 0xEA4, offset: 0x7433C, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s, symObjAddr: 0x1540, symBinAddr: 0x68B4, symSize: 0x28 }
- { offsetInCU: 0xECD, offset: 0x74365, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x1568, symBinAddr: 0x68DC, symSize: 0x28 }
- { offsetInCU: 0xEEC, offset: 0x74384, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin checkPhotoAuthorizationWithImagePicker:]', symObjAddr: 0x1590, symBinAddr: 0x6904, symSize: 0xCC }
- { offsetInCU: 0xF42, offset: 0x743DA, size: 0x8, addend: 0x0, symName: '___63-[FLTImagePickerPlugin checkPhotoAuthorizationWithImagePicker:]_block_invoke', symObjAddr: 0x165C, symBinAddr: 0x69D0, symSize: 0x70 }
- { offsetInCU: 0xFBC, offset: 0x74454, size: 0x8, addend: 0x0, symName: '___63-[FLTImagePickerPlugin checkPhotoAuthorizationWithImagePicker:]_block_invoke_2', symObjAddr: 0x16CC, symBinAddr: 0x6A40, symSize: 0x20 }
- { offsetInCU: 0x1020, offset: 0x744B8, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin checkPhotoAuthorizationWithPHPicker:]', symObjAddr: 0x16EC, symBinAddr: 0x6A60, symSize: 0xD8 }
- { offsetInCU: 0x1084, offset: 0x7451C, size: 0x8, addend: 0x0, symName: '___60-[FLTImagePickerPlugin checkPhotoAuthorizationWithPHPicker:]_block_invoke', symObjAddr: 0x17C4, symBinAddr: 0x6B38, symSize: 0x70 }
- { offsetInCU: 0x10FE, offset: 0x74596, size: 0x8, addend: 0x0, symName: '___60-[FLTImagePickerPlugin checkPhotoAuthorizationWithPHPicker:]_block_invoke_2', symObjAddr: 0x1834, symBinAddr: 0x6BA8, symSize: 0x28 }
- { offsetInCU: 0x1162, offset: 0x745FA, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin errorNoCameraAccess:]', symObjAddr: 0x185C, symBinAddr: 0x6BD0, symSize: 0x74 }
- { offsetInCU: 0x11A7, offset: 0x7463F, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin errorNoPhotoAccess:]', symObjAddr: 0x18D0, symBinAddr: 0x6C44, symSize: 0x74 }
- { offsetInCU: 0x11EC, offset: 0x74684, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin showPhotoLibraryWithPHPicker:]', symObjAddr: 0x1944, symBinAddr: 0x6CB8, symSize: 0x5C }
- { offsetInCU: 0x1231, offset: 0x746C9, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin showPhotoLibraryWithImagePicker:]', symObjAddr: 0x19A0, symBinAddr: 0x6D14, symSize: 0x64 }
- { offsetInCU: 0x1276, offset: 0x7470E, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin getDesiredImageQuality:]', symObjAddr: 0x1A04, symBinAddr: 0x6D78, symSize: 0xAC }
- { offsetInCU: 0x12BB, offset: 0x74753, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin presentationControllerDidDismiss:]', symObjAddr: 0x1AB0, symBinAddr: 0x6E24, symSize: 0x8 }
- { offsetInCU: 0x12FA, offset: 0x74792, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin picker:didFinishPicking:]', symObjAddr: 0x1AB8, symBinAddr: 0x6E2C, symSize: 0x428 }
- { offsetInCU: 0x1411, offset: 0x748A9, size: 0x8, addend: 0x0, symName: ___Block_byref_object_copy_, symObjAddr: 0x1EE0, symBinAddr: 0x7254, symSize: 0x10 }
- { offsetInCU: 0x1436, offset: 0x748CE, size: 0x8, addend: 0x0, symName: ___Block_byref_object_dispose_, symObjAddr: 0x1EF0, symBinAddr: 0x7264, symSize: 0x8 }
- { offsetInCU: 0x1455, offset: 0x748ED, size: 0x8, addend: 0x0, symName: '___48-[FLTImagePickerPlugin picker:didFinishPicking:]_block_invoke', symObjAddr: 0x1EF8, symBinAddr: 0x726C, symSize: 0x7C }
- { offsetInCU: 0x14C6, offset: 0x7495E, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40r48r56w, symObjAddr: 0x1F74, symBinAddr: 0x72E8, symSize: 0x50 }
- { offsetInCU: 0x14EF, offset: 0x74987, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40r48r56w, symObjAddr: 0x1FC4, symBinAddr: 0x7338, symSize: 0x40 }
- { offsetInCU: 0x150E, offset: 0x749A6, size: 0x8, addend: 0x0, symName: '___48-[FLTImagePickerPlugin picker:didFinishPicking:]_block_invoke.108', symObjAddr: 0x2004, symBinAddr: 0x7378, symSize: 0x134 }
- { offsetInCU: 0x1612, offset: 0x74AAA, size: 0x8, addend: 0x0, symName: '___48-[FLTImagePickerPlugin picker:didFinishPicking:]_block_invoke_2', symObjAddr: 0x2138, symBinAddr: 0x74AC, symSize: 0x68 }
- { offsetInCU: 0x1694, offset: 0x74B2C, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40r, symObjAddr: 0x21A0, symBinAddr: 0x7514, symSize: 0x34 }
- { offsetInCU: 0x16BD, offset: 0x74B55, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40r, symObjAddr: 0x21D4, symBinAddr: 0x7548, symSize: 0x2C }
- { offsetInCU: 0x16DC, offset: 0x74B74, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48s56s64s72r80r, symObjAddr: 0x2200, symBinAddr: 0x7574, symSize: 0x64 }
- { offsetInCU: 0x1705, offset: 0x74B9D, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s56s64s72r80r, symObjAddr: 0x2264, symBinAddr: 0x75D8, symSize: 0x58 }
- { offsetInCU: 0x1724, offset: 0x74BBC, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin imagePickerController:didFinishPickingMediaWithInfo:]', symObjAddr: 0x22BC, symBinAddr: 0x7630, symSize: 0x510 }
- { offsetInCU: 0x1828, offset: 0x74CC0, size: 0x8, addend: 0x0, symName: '___76-[FLTImagePickerPlugin imagePickerController:didFinishPickingMediaWithInfo:]_block_invoke', symObjAddr: 0x27CC, symBinAddr: 0x7B40, symSize: 0x18 }
- { offsetInCU: 0x18D9, offset: 0x74D71, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48s56s64s, symObjAddr: 0x27E4, symBinAddr: 0x7B58, symSize: 0x40 }
- { offsetInCU: 0x1902, offset: 0x74D9A, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s56s64s, symObjAddr: 0x2824, symBinAddr: 0x7B98, symSize: 0x40 }
- { offsetInCU: 0x1921, offset: 0x74DB9, size: 0x8, addend: 0x0, symName: '___76-[FLTImagePickerPlugin imagePickerController:didFinishPickingMediaWithInfo:]_block_invoke.121', symObjAddr: 0x2864, symBinAddr: 0x7BD8, symSize: 0x10 }
- { offsetInCU: 0x19C0, offset: 0x74E58, size: 0x8, addend: 0x0, symName: '___76-[FLTImagePickerPlugin imagePickerController:didFinishPickingMediaWithInfo:]_block_invoke.123', symObjAddr: 0x2874, symBinAddr: 0x7BE8, symSize: 0x10 }
- { offsetInCU: 0x1A5F, offset: 0x74EF7, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin imagePickerControllerDidCancel:]', symObjAddr: 0x2884, symBinAddr: 0x7BF8, symSize: 0x34 }
- { offsetInCU: 0x1AA4, offset: 0x74F3C, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin saveImageWithOriginalImageData:image:maxWidth:maxHeight:imageQuality:]', symObjAddr: 0x28B8, symBinAddr: 0x7C2C, symSize: 0xB0 }
- { offsetInCU: 0x1B3E, offset: 0x74FD6, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin saveImageWithPickerInfo:image:imageQuality:]', symObjAddr: 0x2968, symBinAddr: 0x7CDC, symSize: 0xB0 }
- { offsetInCU: 0x1BB6, offset: 0x7504E, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin sendCallResultWithSavedPathList:]', symObjAddr: 0x2A18, symBinAddr: 0x7D8C, symSize: 0x15C }
- { offsetInCU: 0x1C28, offset: 0x750C0, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin sendCallResultWithError:]', symObjAddr: 0x2B74, symBinAddr: 0x7EE8, symSize: 0xA0 }
- { offsetInCU: 0x1C87, offset: 0x7511F, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin imagePickerControllerOverrides]', symObjAddr: 0x2C14, symBinAddr: 0x7F88, symSize: 0x8 }
- { offsetInCU: 0x1CBE, offset: 0x75156, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin callContext]', symObjAddr: 0x2C1C, symBinAddr: 0x7F90, symSize: 0x8 }
- { offsetInCU: 0x1CF5, offset: 0x7518D, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin setCallContext:]', symObjAddr: 0x2C24, symBinAddr: 0x7F98, symSize: 0xC }
- { offsetInCU: 0x1D36, offset: 0x751CE, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerPlugin .cxx_destruct]', symObjAddr: 0x2C30, symBinAddr: 0x7FA4, symSize: 0x30 }
- { offsetInCU: 0x27, offset: 0x75D29, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation initWithResult:maxHeight:maxWidth:desiredImageQuality:fullMetadata:savedPathBlock:]', symObjAddr: 0x0, symBinAddr: 0x7FD4, symSize: 0x16C }
- { offsetInCU: 0x1CC, offset: 0x75ECE, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation initWithResult:maxHeight:maxWidth:desiredImageQuality:fullMetadata:savedPathBlock:]', symObjAddr: 0x0, symBinAddr: 0x7FD4, symSize: 0x16C }
- { offsetInCU: 0x263, offset: 0x75F65, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation isConcurrent]', symObjAddr: 0x16C, symBinAddr: 0x8140, symSize: 0x8 }
- { offsetInCU: 0x296, offset: 0x75F98, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation isExecuting]', symObjAddr: 0x174, symBinAddr: 0x8148, symSize: 0x10 }
- { offsetInCU: 0x2CD, offset: 0x75FCF, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation isFinished]', symObjAddr: 0x184, symBinAddr: 0x8158, symSize: 0x10 }
- { offsetInCU: 0x304, offset: 0x76006, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setFinished:]', symObjAddr: 0x194, symBinAddr: 0x8168, symSize: 0x4C }
- { offsetInCU: 0x343, offset: 0x76045, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setExecuting:]', symObjAddr: 0x1E0, symBinAddr: 0x81B4, symSize: 0x4C }
- { offsetInCU: 0x382, offset: 0x76084, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation completeOperationWithPath:error:]', symObjAddr: 0x22C, symBinAddr: 0x8200, symSize: 0x4C }
- { offsetInCU: 0x3F2, offset: 0x760F4, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation start]', symObjAddr: 0x278, symBinAddr: 0x824C, symSize: 0x244 }
- { offsetInCU: 0x444, offset: 0x76146, size: 0x8, addend: 0x0, symName: '___44-[FLTPHPickerSaveImageToPathOperation start]_block_invoke', symObjAddr: 0x4BC, symBinAddr: 0x8490, symSize: 0xD0 }
- { offsetInCU: 0x4C2, offset: 0x761C4, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s, symObjAddr: 0x58C, symBinAddr: 0x8560, symSize: 0x8 }
- { offsetInCU: 0x4E9, offset: 0x761EB, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation processImage:]', symObjAddr: 0x59C, symBinAddr: 0x8568, symSize: 0x33C }
- { offsetInCU: 0x582, offset: 0x76284, size: 0x8, addend: 0x0, symName: '___52-[FLTPHPickerSaveImageToPathOperation processImage:]_block_invoke', symObjAddr: 0x8D8, symBinAddr: 0x88A4, symSize: 0xE4 }
- { offsetInCU: 0x618, offset: 0x7631A, size: 0x8, addend: 0x0, symName: '___52-[FLTPHPickerSaveImageToPathOperation processImage:]_block_invoke.15', symObjAddr: 0xA0C, symBinAddr: 0x8988, symSize: 0x10 }
- { offsetInCU: 0x6B0, offset: 0x763B2, size: 0x8, addend: 0x0, symName: '___52-[FLTPHPickerSaveImageToPathOperation processImage:]_block_invoke.17', symObjAddr: 0xA2C, symBinAddr: 0x8998, symSize: 0x10 }
- { offsetInCU: 0x748, offset: 0x7644A, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation processVideo]', symObjAddr: 0xA3C, symBinAddr: 0x89A8, symSize: 0x10C }
- { offsetInCU: 0x78B, offset: 0x7648D, size: 0x8, addend: 0x0, symName: '___51-[FLTPHPickerSaveImageToPathOperation processVideo]_block_invoke', symObjAddr: 0xB48, symBinAddr: 0x8AB4, symSize: 0x150 }
- { offsetInCU: 0x828, offset: 0x7652A, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation result]', symObjAddr: 0xC98, symBinAddr: 0x8C04, symSize: 0x10 }
- { offsetInCU: 0x85F, offset: 0x76561, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setResult:]', symObjAddr: 0xCA8, symBinAddr: 0x8C14, symSize: 0x14 }
- { offsetInCU: 0x8A0, offset: 0x765A2, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation maxHeight]', symObjAddr: 0xCBC, symBinAddr: 0x8C28, symSize: 0x10 }
- { offsetInCU: 0x8D7, offset: 0x765D9, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setMaxHeight:]', symObjAddr: 0xCCC, symBinAddr: 0x8C38, symSize: 0x14 }
- { offsetInCU: 0x918, offset: 0x7661A, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation maxWidth]', symObjAddr: 0xCE0, symBinAddr: 0x8C4C, symSize: 0x10 }
- { offsetInCU: 0x94F, offset: 0x76651, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setMaxWidth:]', symObjAddr: 0xCF0, symBinAddr: 0x8C5C, symSize: 0x14 }
- { offsetInCU: 0x990, offset: 0x76692, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation desiredImageQuality]', symObjAddr: 0xD04, symBinAddr: 0x8C70, symSize: 0x10 }
- { offsetInCU: 0x9C7, offset: 0x766C9, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setDesiredImageQuality:]', symObjAddr: 0xD14, symBinAddr: 0x8C80, symSize: 0x14 }
- { offsetInCU: 0xA08, offset: 0x7670A, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation requestFullMetadata]', symObjAddr: 0xD28, symBinAddr: 0x8C94, symSize: 0x10 }
- { offsetInCU: 0xA3F, offset: 0x76741, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation setRequestFullMetadata:]', symObjAddr: 0xD38, symBinAddr: 0x8CA4, symSize: 0x10 }
- { offsetInCU: 0xA7A, offset: 0x7677C, size: 0x8, addend: 0x0, symName: '-[FLTPHPickerSaveImageToPathOperation .cxx_destruct]', symObjAddr: 0xD48, symBinAddr: 0x8CB4, symSize: 0x7C }
- { offsetInCU: 0x27, offset: 0x76B0B, size: 0x8, addend: 0x0, symName: '-[FLTSourceCameraBox initWithValue:]', symObjAddr: 0x0, symBinAddr: 0x8D30, symSize: 0x48 }
- { offsetInCU: 0x35, offset: 0x76B19, size: 0x8, addend: 0x0, symName: _FLTImagePickerApiGetCodec, symObjAddr: 0xCA0, symBinAddr: 0x99D0, symSize: 0x40 }
- { offsetInCU: 0x5B, offset: 0x76B3F, size: 0x8, addend: 0x0, symName: _FLTImagePickerApiGetCodec.sSharedObject, symObjAddr: 0xA128, symBinAddr: 0x18298, symSize: 0x0 }
- { offsetInCU: 0x71, offset: 0x76B55, size: 0x8, addend: 0x0, symName: _FLTImagePickerApiGetCodec.sPred, symObjAddr: 0xA130, symBinAddr: 0x182A0, symSize: 0x0 }
- { offsetInCU: 0x2A8, offset: 0x76D8C, size: 0x8, addend: 0x0, symName: '-[FLTSourceCameraBox initWithValue:]', symObjAddr: 0x0, symBinAddr: 0x8D30, symSize: 0x48 }
- { offsetInCU: 0x2EF, offset: 0x76DD3, size: 0x8, addend: 0x0, symName: '-[FLTSourceCameraBox value]', symObjAddr: 0x48, symBinAddr: 0x8D78, symSize: 0x8 }
- { offsetInCU: 0x326, offset: 0x76E0A, size: 0x8, addend: 0x0, symName: '-[FLTSourceCameraBox setValue:]', symObjAddr: 0x50, symBinAddr: 0x8D80, symSize: 0x8 }
- { offsetInCU: 0x363, offset: 0x76E47, size: 0x8, addend: 0x0, symName: '-[FLTSourceTypeBox initWithValue:]', symObjAddr: 0x58, symBinAddr: 0x8D88, symSize: 0x48 }
- { offsetInCU: 0x3AA, offset: 0x76E8E, size: 0x8, addend: 0x0, symName: '-[FLTSourceTypeBox value]', symObjAddr: 0xA0, symBinAddr: 0x8DD0, symSize: 0x8 }
- { offsetInCU: 0x3E1, offset: 0x76EC5, size: 0x8, addend: 0x0, symName: '-[FLTSourceTypeBox setValue:]', symObjAddr: 0xA8, symBinAddr: 0x8DD8, symSize: 0x8 }
- { offsetInCU: 0x41E, offset: 0x76F02, size: 0x8, addend: 0x0, symName: '+[FLTMaxSize makeWithWidth:height:]', symObjAddr: 0xB0, symBinAddr: 0x8DE0, symSize: 0x7C }
- { offsetInCU: 0x481, offset: 0x76F65, size: 0x8, addend: 0x0, symName: '+[FLTMaxSize fromList:]', symObjAddr: 0x12C, symBinAddr: 0x8E5C, symSize: 0xA8 }
- { offsetInCU: 0x50C, offset: 0x76FF0, size: 0x8, addend: 0x0, symName: _GetNullableObjectAtIndex, symObjAddr: 0x1D4, symBinAddr: 0x8F04, symSize: 0x70 }
- { offsetInCU: 0x557, offset: 0x7703B, size: 0x8, addend: 0x0, symName: '+[FLTMaxSize nullableFromList:]', symObjAddr: 0x244, symBinAddr: 0x8F74, symSize: 0x30 }
- { offsetInCU: 0x59A, offset: 0x7707E, size: 0x8, addend: 0x0, symName: '-[FLTMaxSize toList]', symObjAddr: 0x274, symBinAddr: 0x8FA4, symSize: 0x118 }
- { offsetInCU: 0x5D1, offset: 0x770B5, size: 0x8, addend: 0x0, symName: '-[FLTMaxSize width]', symObjAddr: 0x38C, symBinAddr: 0x90BC, symSize: 0x8 }
- { offsetInCU: 0x608, offset: 0x770EC, size: 0x8, addend: 0x0, symName: '-[FLTMaxSize setWidth:]', symObjAddr: 0x394, symBinAddr: 0x90C4, symSize: 0xC }
- { offsetInCU: 0x649, offset: 0x7712D, size: 0x8, addend: 0x0, symName: '-[FLTMaxSize height]', symObjAddr: 0x3A0, symBinAddr: 0x90D0, symSize: 0x8 }
- { offsetInCU: 0x680, offset: 0x77164, size: 0x8, addend: 0x0, symName: '-[FLTMaxSize setHeight:]', symObjAddr: 0x3A8, symBinAddr: 0x90D8, symSize: 0xC }
- { offsetInCU: 0x6C1, offset: 0x771A5, size: 0x8, addend: 0x0, symName: '-[FLTMaxSize .cxx_destruct]', symObjAddr: 0x3B4, symBinAddr: 0x90E4, symSize: 0x30 }
- { offsetInCU: 0x6F4, offset: 0x771D8, size: 0x8, addend: 0x0, symName: '+[FLTMediaSelectionOptions makeWithMaxSize:imageQuality:requestFullMetadata:allowMultiple:]', symObjAddr: 0x3E4, symBinAddr: 0x9114, symSize: 0xA4 }
- { offsetInCU: 0x777, offset: 0x7725B, size: 0x8, addend: 0x0, symName: '+[FLTMediaSelectionOptions fromList:]', symObjAddr: 0x488, symBinAddr: 0x91B8, symSize: 0x134 }
- { offsetInCU: 0x83A, offset: 0x7731E, size: 0x8, addend: 0x0, symName: '+[FLTMediaSelectionOptions nullableFromList:]', symObjAddr: 0x5BC, symBinAddr: 0x92EC, symSize: 0x30 }
- { offsetInCU: 0x87D, offset: 0x77361, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions toList]', symObjAddr: 0x5EC, symBinAddr: 0x931C, symSize: 0x1B4 }
- { offsetInCU: 0x8B4, offset: 0x77398, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions maxSize]', symObjAddr: 0x7A0, symBinAddr: 0x94D0, symSize: 0x8 }
- { offsetInCU: 0x8EB, offset: 0x773CF, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions setMaxSize:]', symObjAddr: 0x7A8, symBinAddr: 0x94D8, symSize: 0xC }
- { offsetInCU: 0x92C, offset: 0x77410, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions imageQuality]', symObjAddr: 0x7B4, symBinAddr: 0x94E4, symSize: 0x8 }
- { offsetInCU: 0x963, offset: 0x77447, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions setImageQuality:]', symObjAddr: 0x7BC, symBinAddr: 0x94EC, symSize: 0xC }
- { offsetInCU: 0x9A4, offset: 0x77488, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions requestFullMetadata]', symObjAddr: 0x7C8, symBinAddr: 0x94F8, symSize: 0x8 }
- { offsetInCU: 0x9DB, offset: 0x774BF, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions setRequestFullMetadata:]', symObjAddr: 0x7D0, symBinAddr: 0x9500, symSize: 0x8 }
- { offsetInCU: 0xA16, offset: 0x774FA, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions allowMultiple]', symObjAddr: 0x7D8, symBinAddr: 0x9508, symSize: 0x8 }
- { offsetInCU: 0xA4D, offset: 0x77531, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions setAllowMultiple:]', symObjAddr: 0x7E0, symBinAddr: 0x9510, symSize: 0x8 }
- { offsetInCU: 0xA88, offset: 0x7756C, size: 0x8, addend: 0x0, symName: '-[FLTMediaSelectionOptions .cxx_destruct]', symObjAddr: 0x7E8, symBinAddr: 0x9518, symSize: 0x30 }
- { offsetInCU: 0xABB, offset: 0x7759F, size: 0x8, addend: 0x0, symName: '+[FLTSourceSpecification makeWithType:camera:]', symObjAddr: 0x818, symBinAddr: 0x9548, symSize: 0x54 }
- { offsetInCU: 0xB1E, offset: 0x77602, size: 0x8, addend: 0x0, symName: '+[FLTSourceSpecification fromList:]', symObjAddr: 0x86C, symBinAddr: 0x959C, symSize: 0xB4 }
- { offsetInCU: 0xBA9, offset: 0x7768D, size: 0x8, addend: 0x0, symName: '+[FLTSourceSpecification nullableFromList:]', symObjAddr: 0x920, symBinAddr: 0x9650, symSize: 0x30 }
- { offsetInCU: 0xBEC, offset: 0x776D0, size: 0x8, addend: 0x0, symName: '-[FLTSourceSpecification toList]', symObjAddr: 0x950, symBinAddr: 0x9680, symSize: 0xDC }
- { offsetInCU: 0xC23, offset: 0x77707, size: 0x8, addend: 0x0, symName: '-[FLTSourceSpecification type]', symObjAddr: 0xA2C, symBinAddr: 0x975C, symSize: 0x8 }
- { offsetInCU: 0xC5A, offset: 0x7773E, size: 0x8, addend: 0x0, symName: '-[FLTSourceSpecification setType:]', symObjAddr: 0xA34, symBinAddr: 0x9764, symSize: 0x8 }
- { offsetInCU: 0xC97, offset: 0x7777B, size: 0x8, addend: 0x0, symName: '-[FLTSourceSpecification camera]', symObjAddr: 0xA3C, symBinAddr: 0x976C, symSize: 0x8 }
- { offsetInCU: 0xCCE, offset: 0x777B2, size: 0x8, addend: 0x0, symName: '-[FLTSourceSpecification setCamera:]', symObjAddr: 0xA44, symBinAddr: 0x9774, symSize: 0x8 }
- { offsetInCU: 0xD0B, offset: 0x777EF, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerApiCodecReader readValueOfType:]', symObjAddr: 0xA4C, symBinAddr: 0x977C, symSize: 0xB8 }
- { offsetInCU: 0xD52, offset: 0x77836, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerApiCodecWriter writeValue:]', symObjAddr: 0xB04, symBinAddr: 0x9834, symSize: 0x104 }
- { offsetInCU: 0xD95, offset: 0x77879, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerApiCodecReaderWriter writerWithData:]', symObjAddr: 0xC08, symBinAddr: 0x9938, symSize: 0x4C }
- { offsetInCU: 0xDD8, offset: 0x778BC, size: 0x8, addend: 0x0, symName: '-[FLTImagePickerApiCodecReaderWriter readerWithData:]', symObjAddr: 0xC54, symBinAddr: 0x9984, symSize: 0x4C }
- { offsetInCU: 0xE63, offset: 0x77947, size: 0x8, addend: 0x0, symName: ___FLTImagePickerApiGetCodec_block_invoke, symObjAddr: 0xCE0, symBinAddr: 0x9A10, symSize: 0x5C }
- { offsetInCU: 0xEA9, offset: 0x7798D, size: 0x8, addend: 0x0, symName: _SetUpFLTImagePickerApi, symObjAddr: 0xD3C, symBinAddr: 0x9A6C, symSize: 0x2C8 }
- { offsetInCU: 0xF96, offset: 0x77A7A, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke, symObjAddr: 0x1004, symBinAddr: 0x9D34, symSize: 0x154 }
- { offsetInCU: 0x10B5, offset: 0x77B99, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke_2, symObjAddr: 0x1158, symBinAddr: 0x9E88, symSize: 0x48 }
- { offsetInCU: 0x114A, offset: 0x77C2E, size: 0x8, addend: 0x0, symName: _wrapResult, symObjAddr: 0x11A0, symBinAddr: 0x9ED0, symSize: 0x1EC }
- { offsetInCU: 0x1185, offset: 0x77C69, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke.102, symObjAddr: 0x13AC, symBinAddr: 0xA0BC, symSize: 0x128 }
- { offsetInCU: 0x1278, offset: 0x77D5C, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke_2.103, symObjAddr: 0x14D4, symBinAddr: 0xA1E4, symSize: 0x48 }
- { offsetInCU: 0x1311, offset: 0x77DF5, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke.107, symObjAddr: 0x151C, symBinAddr: 0xA22C, symSize: 0xF8 }
- { offsetInCU: 0x13DF, offset: 0x77EC3, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke_2.108, symObjAddr: 0x1614, symBinAddr: 0xA324, symSize: 0x48 }
- { offsetInCU: 0x1479, offset: 0x77F5D, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke_3, symObjAddr: 0x165C, symBinAddr: 0xA36C, symSize: 0xBC }
- { offsetInCU: 0x1525, offset: 0x78009, size: 0x8, addend: 0x0, symName: ___SetUpFLTImagePickerApi_block_invoke_4, symObjAddr: 0x1718, symBinAddr: 0xA428, symSize: 0x48 }
...

View File

@ -0,0 +1,34 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface GIFInfo : NSObject
@property(strong, nonatomic, readonly) NSArray<UIImage *> *images;
@property(assign, nonatomic, readonly) NSTimeInterval interval;
- (instancetype)initWithImages:(NSArray<UIImage *> *)images interval:(NSTimeInterval)interval;
@end
@interface FLTImagePickerImageUtil : NSObject
// Resizes the given image to fit within maxWidth (if non-nil) and maxHeight (if non-nil)
+ (UIImage *)scaledImage:(UIImage *)image
maxWidth:(nullable NSNumber *)maxWidth
maxHeight:(nullable NSNumber *)maxHeight
isMetadataAvailable:(BOOL)isMetadataAvailable;
// Resize all gif animation frames.
+ (GIFInfo *)scaledGIFImage:(NSData *)data
maxWidth:(NSNumber *)maxWidth
maxHeight:(NSNumber *)maxHeight;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,48 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef enum : NSUInteger {
FLTImagePickerMIMETypePNG,
FLTImagePickerMIMETypeJPEG,
FLTImagePickerMIMETypeGIF,
FLTImagePickerMIMETypeOther,
} FLTImagePickerMIMEType;
extern NSString *const kFLTImagePickerDefaultSuffix;
extern const FLTImagePickerMIMEType kFLTImagePickerMIMETypeDefault;
@interface FLTImagePickerMetaDataUtil : NSObject
// Retrieve MIME type by reading the image data. We currently only support some popular types.
+ (FLTImagePickerMIMEType)getImageMIMETypeFromImageData:(NSData *)imageData;
// Get corresponding surfix from type.
+ (nullable NSString *)imageTypeSuffixFromType:(FLTImagePickerMIMEType)type;
+ (NSDictionary *)getMetaDataFromImageData:(NSData *)imageData;
// Creates and returns data for a new image based on imageData, but with the
// given metadata.
//
// If creating a new image fails, returns nil.
+ (nullable NSData *)imageFromImage:(NSData *)imageData withMetaData:(NSDictionary *)metadata;
// Converting UIImage to a NSData with the type proveide.
//
// The quality is for JPEG type only, it defaults to 1. It throws exception if setting a non-nil
// quality with type other than FLTImagePickerMIMETypeJPEG. Converting UIImage to
// FLTImagePickerMIMETypeGIF or FLTImagePickerMIMETypeTIFF is not supported in iOS. This
// method throws exception if trying to do so.
+ (nonnull NSData *)convertImage:(nonnull UIImage *)image
usingType:(FLTImagePickerMIMEType)type
quality:(nullable NSNumber *)quality;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,37 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#import <Photos/Photos.h>
#import <PhotosUI/PhotosUI.h>
#import "FLTImagePickerImageUtil.h"
NS_ASSUME_NONNULL_BEGIN
@interface FLTImagePickerPhotoAssetUtil : NSObject
+ (nullable PHAsset *)getAssetFromImagePickerInfo:(NSDictionary *)info;
+ (nullable PHAsset *)getAssetFromPHPickerResult:(PHPickerResult *)result API_AVAILABLE(ios(14));
// Saves video to temporary URL. Returns nil on failure;
+ (NSURL *)saveVideoFromURL:(NSURL *)videoURL;
// Saves image with correct meta data and extention copied from the original asset.
// maxWidth and maxHeight are used only for GIF images.
+ (NSString *)saveImageWithOriginalImageData:(NSData *)originalImageData
image:(UIImage *)image
maxWidth:(nullable NSNumber *)maxWidth
maxHeight:(nullable NSNumber *)maxHeight
imageQuality:(nullable NSNumber *)imageQuality;
// Save image with correct meta data and extention copied from image picker result info.
+ (NSString *)saveImageWithPickerInfo:(nullable NSDictionary *)info
image:(UIImage *)image
imageQuality:(nullable NSNumber *)imageQuality;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,13 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Flutter/Flutter.h>
#import <PhotosUI/PhotosUI.h>
NS_ASSUME_NONNULL_BEGIN
@interface FLTImagePickerPlugin : NSObject <FlutterPlugin>
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,107 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This header is available in the Test module. Import via "@import image_picker_ios_ios.Test;"
#import <image_picker_ios/FLTImagePickerPlugin.h>
#import "messages.g.h"
NS_ASSUME_NONNULL_BEGIN
/**
* The return handler used for all method calls, which internally adapts the provided result list
* to return either a list or a single element depending on the original call.
*/
typedef void (^FlutterResultAdapter)(NSArray<NSString *> *_Nullable, FlutterError *_Nullable);
/**
* A container class for context to use when handling a method call from the Dart side.
*/
@interface FLTImagePickerMethodCallContext : NSObject
/**
* Initializes a new context that calls |result| on completion of the operation.
*/
- (instancetype)initWithResult:(nonnull FlutterResultAdapter)result;
/** The callback to provide results to the Dart caller. */
@property(nonatomic, copy, nonnull) FlutterResultAdapter result;
/**
* The maximum size to enforce on the results.
*
* If nil, no resizing is done.
*/
@property(nonatomic, strong, nullable) FLTMaxSize *maxSize;
/**
* The image quality to resample the results to.
*
* If nil, no resampling is done.
*/
@property(nonatomic, strong, nullable) NSNumber *imageQuality;
/** Maximum number of images to select. 0 indicates no maximum. */
@property(nonatomic, assign) int maxImageCount;
/** Whether the image should be picked with full metadata (requires gallery permissions) */
@property(nonatomic, assign) BOOL requestFullMetadata;
/** Whether the picker should include videos in the list*/
@property(nonatomic, assign) BOOL includeVideo;
@end
#pragma mark -
/** Methods exposed for unit testing. */
@interface FLTImagePickerPlugin () <FLTImagePickerApi,
UINavigationControllerDelegate,
UIImagePickerControllerDelegate,
PHPickerViewControllerDelegate,
UIAdaptivePresentationControllerDelegate>
/**
* The context of the Flutter method call that is currently being handled, if any.
*/
@property(strong, nonatomic, nullable) FLTImagePickerMethodCallContext *callContext;
- (UIViewController *)viewControllerWithWindow:(nullable UIWindow *)window;
/**
* Validates the provided paths list, then sends it via `callContext.result` as the result of the
* original platform channel method call, clearing the in-progress call state.
*
* @param pathList The paths to return. nil indicates a cancelled operation.
*/
- (void)sendCallResultWithSavedPathList:(nullable NSArray *)pathList;
/**
* Tells the delegate that the user cancelled the pick operation.
*
* Your delegates implementation of this method should dismiss the picker view
* by calling the dismissModalViewControllerAnimated: method of the parent
* view controller.
*
* Implementation of this method is optional, but expected.
*
* @param picker The controller object managing the image picker interface.
*/
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
/**
* Sets UIImagePickerController instances that will be used when a new
* controller would normally be created. Each call to
* createImagePickerController will remove the current first element from
* the array.
*
* Should be used for testing purposes only.
*/
- (void)setImagePickerControllerOverrides:
(NSArray<UIImagePickerController *> *)imagePickerControllers;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,39 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#import <PhotosUI/PhotosUI.h>
#import "FLTImagePickerImageUtil.h"
#import "FLTImagePickerMetaDataUtil.h"
#import "FLTImagePickerPhotoAssetUtil.h"
NS_ASSUME_NONNULL_BEGIN
/// Returns either the saved path, or an error. Both cannot be set.
typedef void (^FLTGetSavedPath)(NSString *_Nullable savedPath, FlutterError *_Nullable error);
/*!
@class FLTPHPickerSaveImageToPathOperation
@brief The FLTPHPickerSaveImageToPathOperation class
@discussion This class was implemented to handle saved image paths and populate the pathList
with the final result by using GetSavedPath type block.
@superclass SuperClass: NSOperation\n
@helps It helps FLTImagePickerPlugin class.
*/
@interface FLTPHPickerSaveImageToPathOperation : NSOperation
- (instancetype)initWithResult:(PHPickerResult *)result
maxHeight:(NSNumber *)maxHeight
maxWidth:(NSNumber *)maxWidth
desiredImageQuality:(NSNumber *)desiredImageQuality
fullMetadata:(BOOL)fullMetadata
savedPathBlock:(FLTGetSavedPath)savedPathBlock API_AVAILABLE(ios(14));
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,6 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#import <image_picker_ios/FLTImagePickerPlugin.h>

View File

@ -0,0 +1,95 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Autogenerated from Pigeon (v13.0.0), do not edit directly.
// See also: https://pub.dev/packages/pigeon
#import <Foundation/Foundation.h>
@protocol FlutterBinaryMessenger;
@protocol FlutterMessageCodec;
@class FlutterError;
@class FlutterStandardTypedData;
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, FLTSourceCamera) {
FLTSourceCameraRear = 0,
FLTSourceCameraFront = 1,
};
/// Wrapper for FLTSourceCamera to allow for nullability.
@interface FLTSourceCameraBox : NSObject
@property(nonatomic, assign) FLTSourceCamera value;
- (instancetype)initWithValue:(FLTSourceCamera)value;
@end
typedef NS_ENUM(NSUInteger, FLTSourceType) {
FLTSourceTypeCamera = 0,
FLTSourceTypeGallery = 1,
};
/// Wrapper for FLTSourceType to allow for nullability.
@interface FLTSourceTypeBox : NSObject
@property(nonatomic, assign) FLTSourceType value;
- (instancetype)initWithValue:(FLTSourceType)value;
@end
@class FLTMaxSize;
@class FLTMediaSelectionOptions;
@class FLTSourceSpecification;
@interface FLTMaxSize : NSObject
+ (instancetype)makeWithWidth:(nullable NSNumber *)width height:(nullable NSNumber *)height;
@property(nonatomic, strong, nullable) NSNumber *width;
@property(nonatomic, strong, nullable) NSNumber *height;
@end
@interface FLTMediaSelectionOptions : NSObject
/// `init` unavailable to enforce nonnull fields, see the `make` class method.
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)makeWithMaxSize:(FLTMaxSize *)maxSize
imageQuality:(nullable NSNumber *)imageQuality
requestFullMetadata:(BOOL)requestFullMetadata
allowMultiple:(BOOL)allowMultiple;
@property(nonatomic, strong) FLTMaxSize *maxSize;
@property(nonatomic, strong, nullable) NSNumber *imageQuality;
@property(nonatomic, assign) BOOL requestFullMetadata;
@property(nonatomic, assign) BOOL allowMultiple;
@end
@interface FLTSourceSpecification : NSObject
/// `init` unavailable to enforce nonnull fields, see the `make` class method.
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)makeWithType:(FLTSourceType)type camera:(FLTSourceCamera)camera;
@property(nonatomic, assign) FLTSourceType type;
@property(nonatomic, assign) FLTSourceCamera camera;
@end
/// The codec used by FLTImagePickerApi.
NSObject<FlutterMessageCodec> *FLTImagePickerApiGetCodec(void);
@protocol FLTImagePickerApi
- (void)pickImageWithSource:(FLTSourceSpecification *)source
maxSize:(FLTMaxSize *)maxSize
quality:(nullable NSNumber *)imageQuality
fullMetadata:(BOOL)requestFullMetadata
completion:(void (^)(NSString *_Nullable, FlutterError *_Nullable))completion;
- (void)pickMultiImageWithMaxSize:(FLTMaxSize *)maxSize
quality:(nullable NSNumber *)imageQuality
fullMetadata:(BOOL)requestFullMetadata
completion:(void (^)(NSArray<NSString *> *_Nullable,
FlutterError *_Nullable))completion;
- (void)pickVideoWithSource:(FLTSourceSpecification *)source
maxDuration:(nullable NSNumber *)maxDurationSeconds
completion:(void (^)(NSString *_Nullable, FlutterError *_Nullable))completion;
/// Selects images and videos and returns their paths.
- (void)pickMediaWithMediaSelectionOptions:(FLTMediaSelectionOptions *)mediaSelectionOptions
completion:(void (^)(NSArray<NSString *> *_Nullable,
FlutterError *_Nullable))completion;
@end
extern void SetUpFLTImagePickerApi(id<FlutterBinaryMessenger> binaryMessenger,
NSObject<FLTImagePickerApi> *_Nullable api);
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,14 @@
framework module image_picker_ios {
umbrella header "image_picker_ios-umbrella.h"
export *
module * { export * }
explicit module Test {
header "FLTImagePickerPlugin_Test.h"
header "FLTImagePickerImageUtil.h"
header "FLTImagePickerMetaDataUtil.h"
header "FLTImagePickerPhotoAssetUtil.h"
header "FLTPHPickerSaveImageToPathOperation.h"
}
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyTracking</key>
<false/>
</dict>
</plist>