You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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构建缓存:

    1. 进入iOS项目目录,删除Pods文件夹、Podfile.lock文件
    2. 执行pod install重新安装依赖
    3. 在Xcode中点击Product > Clean Build Folder清理构建缓存,再重新运行项目
  • 适配Flutter与iOS版本:
    确保Flutter版本与iOS17完全兼容,推荐使用Flutter 3.16.7及以上版本,该版本对iOS17的适配更完善,能解决部分底层兼容性问题。

  • 排查原生层问题:
    若以上方案无效,可创建纯iOS原生项目,调用系统相机API测试是否崩溃。如果原生项目也崩溃,说明是设备或iOS系统本身的问题;若原生正常,则需检查Flutter项目的iOS配置是否有冲突(如其他插件干扰相机权限)。

内容的提问来源于stack exchange,提问作者Carlos Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:18:17