Flutter image_picker调用pickImage相机在iOS17+崩溃求助
iOS 17+ 调用ImagePicker相机崩溃的解决方案
针对你使用ImagePicker().pickImage(source: ImageSource.camera)在iOS17及以上机型崩溃的问题,结合你的环境信息(image_picker 1.0.7、多版本Flutter、iPhone XR/13 mini/15 Pro Max),可以尝试以下方案:
升级image_picker插件版本:1.0.7版本未针对iOS17做适配,存在已知的相机兼容性问题。直接升级到最新稳定版本(如
image_picker: ^1.0.8及以上),新版本已修复iOS17相关的相机调用崩溃问题。验证iOS权限配置细节:
确保Info.plist中的权限描述非空且符合iOS17要求,避免使用占位符或空字符串:<key>NSCameraUsageDescription</key> <string>需要访问相机拍摄照片</string> <key>NSMicrophoneUsageDescription</key> <string>需要访问麦克风录制视频</string> <key>NSPhotoLibraryUsageDescription</key> <string>需要访问相册保存照片</string>另外,iOS17新增
PHPhotoLibraryPreventAutomaticLimitedAccessAlert键,若不需要限制相册访问权限,可添加该键并设为YES,避免权限弹窗逻辑冲突。清理iOS构建缓存:
- 进入iOS项目目录,删除
Pods文件夹、Podfile.lock文件 - 执行
pod install重新安装依赖 - 在Xcode中点击
Product > Clean Build Folder清理构建缓存,再重新运行项目
- 进入iOS项目目录,删除
适配Flutter与iOS版本:
确保Flutter版本与iOS17完全兼容,推荐使用Flutter 3.16.7及以上版本,该版本对iOS17的适配更完善,能解决部分底层兼容性问题。排查原生层问题:
若以上方案无效,可创建纯iOS原生项目,调用系统相机API测试是否崩溃。如果原生项目也崩溃,说明是设备或iOS系统本身的问题;若原生正常,则需检查Flutter项目的iOS配置是否有冲突(如其他插件干扰相机权限)。
内容的提问来源于stack exchange,提问作者Carlos Henrique
相关产品推荐
相关产品推荐

