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

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及以上
  • 在Runner Target的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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:41:20