Flutter构建iOS(真机/编译命令)Bitcode错误修复咨询
解决Flutter iOS真机构建时BoringSSL-GRPC的Bitcode错误
这个问题我之前也碰到过,本质是你的项目启用了Bitcode,但依赖的BoringSSL-GRPC库没有包含Bitcode支持——模拟器构建默认不会严格校验Bitcode,而真机构建或执行flutter build ios命令时会触发这个检查,所以才出现了模拟器正常、真机报错的差异。下面是几个靠谱的解决方法,按优先级推荐:
方法一:直接在Xcode中禁用Bitcode(最快速有效)
这是最直接的解决方案,因为很多旧版第三方库(包括你当前使用的BoringSSL-GRPC)本身就不支持Bitcode,而Bitcode对大多数Flutter项目来说并非必需:
- 打开Flutter项目
ios目录下的Runner.xcworkspace(注意是.xcworkspace而非.xcodeproj) - 在左侧导航栏选中
Runner目标 - 切换到
Build Settings标签,在搜索框输入ENABLE_BITCODE - 将
Debug和Release模式下的ENABLE_BITCODE都修改为NO - 关闭Xcode,重新执行
flutter build ios或连接真机运行即可
方法二:更新依赖库尝试获取支持Bitcode的版本
如果不想禁用Bitcode,可以尝试更新相关依赖:
- 终端进入项目的
ios目录:cd ios - 执行
pod update BoringSSL-GRPC,尝试将该库更新到最新版本 - 如果更新后问题依旧,检查
pubspec.yaml中依赖的grpc相关Flutter包(比如grpc或grpc-web)是否有新版本,更新后执行flutter pub get,再回到ios目录执行pod install
方法三:清理构建缓存排除缓存问题
有时候旧的构建缓存会引发奇怪的依赖冲突,试试清理缓存:
- 终端执行
flutter clean清理Flutter项目缓存 - 在Xcode中按
Shift+Command+K清理项目构建缓存,或者手动删除~/Library/Developer/Xcode/DerivedData下对应你的Runner项目的文件夹(即错误提示里的Runner-dwvxvkkosgpgqncynmszqlholtde) - 重新执行
flutter pub get,然后cd ios && pod install,再重新构建
结合你的环境(Flutter 1.12.13+hotfix.5、Xcode 11.3),方法一应该就能完美解决问题。
内容的提问来源于stack exchange,提问作者RIFAL
相关产品推荐
相关产品推荐

