如何修复isar_flutter_libs:^3.0.5导致的iOS打包流水线失败问题?
解决iOS嵌入Flutter后Isar库导致的Bitcode版本不兼容打包错误
错误原因分析
报错信息明确显示:Isar库预编译的二进制文件使用Xcode 14(Producer版本1400.0.29.102.0_0)生成,而你当前使用的Xcode 13.2.1(Reader版本1300.0.29.30_0)无法解析该版本的Bitcode,最终导致链接失败。
可行解决方案
禁用Bitcode(最简便有效)
苹果目前已不再强制要求Bitcode,直接关闭即可解决版本不兼容问题:- 打开iOS主工程的
Build Settings,搜索Enable Bitcode,将其设置为NO - 检查Flutter子工程的
Build Settings,确保同样关闭Bitcode(若通过CocoaPods引入,可在Podfile中添加post_install脚本统一设置) - 清理项目缓存后重新打包:执行
flutter clean,删除iOS目录下的Pods文件夹和DerivedData,再运行pod install
- 打开iOS主工程的
手动编译Isar适配库(需保留Bitcode时使用)
若项目必须保留Bitcode,可自行用Xcode 13.2.1编译Isar的iOS库:- 克隆Isar官方仓库,切换到你使用的版本分支(如3.0.5)
- 用Xcode 13.2.1编译
isar_flutter_libs的iOS目标 - 将编译生成的
.framework文件替换项目中原有依赖的Isar库文件
降级Isar至兼容版本
尝试使用Isar 2.x系列版本(如2.5.0),这类版本大概率是用Xcode 13及以下版本编译的,Bitcode版本可兼容:- 修改
pubspec.yaml中isar和isar_flutter_libs的版本为2.x - 执行
flutter pub get更新依赖,清理缓存后重新打包测试
- 修改
Fastlane打包额外注意事项
确保Fastlane执行时绑定的是Xcode 13.2.1,避免环境中多Xcode版本导致编译环境错乱,可在Fastfile中添加指定Xcode路径的配置:
xcode_select "/Applications/Xcode_13.2.1.app"
内容的提问来源于stack exchange,提问作者hrishikesh rajwade
相关产品推荐
相关产品推荐

