Flutter应用仅在iOS Release构建启动时崩溃的原因求助
解决Flutter 3.19.5 iOS Release构建启动崩溃(GRPC_ec_felem_neg断言失败)
问题核心分析
这个Assertion failed: (borrow == 0), function GRPC_ec_felem_neg, file felem.c, line 66错误属于BoringSSL底层椭圆曲线运算异常,大概率是Flutter 3.19.5的iOS编译链与gRPC、SSL相关依赖包存在版本兼容冲突,Android端正常说明问题仅存在于iOS特定编译环境。
可行解决方案
1. 锁定BoringSSL编译配置
在iOS工程的Podfile中添加配置,强制适配Flutter 3.19.5的编译标准:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) if target.name == 'BoringSSL-GRPC' target.build_configurations.each do |config| config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'gnu++17' config.build_settings['SWIFT_VERSION'] = '5.0' end end end end
执行命令重新安装依赖:
cd ios && pod deintegrate && pod install --repo-update
2. 排查并调整gRPC相关依赖
检查pubspec.yaml中涉及gRPC、HTTP客户端的依赖包(如grpc、firebase_core、dio等),尝试降级或升级到适配Flutter 3.19.5的版本:
- 例如将
grpc包锁定到3.2.0版本 - Firebase系列包同步升级到
10.17.0及以上版本
3. 修改iOS工程编译配置
打开iOS工程(ios/Runner.xcworkspace),做以下调整:
- 将Deployment Target设置为iOS 14.0及以上
- 在
RunnerTarget的Build Settings中,把Enable Bitcode改为NO - 临时添加
Other C Flags为-DNDEBUG关闭断言检查(仅用于验证问题,不推荐长期使用)
4. 彻底清理编译缓存
执行以下命令清空所有缓存后重新构建:
flutter clean rm -rf ios/Pods ios/Podfile.lock ios/Runner.xcworkspace flutter pub get cd ios && pod install cd .. && flutter build ios --release
5. 临时回退Flutter版本
若以上方法无效,可暂时回退到Flutter 3.16.x稳定版,确认是否为Flutter 3.19.5的iOS编译链引入的问题,待官方修复后再升级。
内容的提问来源于stack exchange,提问作者holycamolie
相关产品推荐
相关产品推荐

