Flutter无法构建应用Release版本问题求助
Flutter Release/Profile构建崩溃:Dart Snapshot生成失败(段错误)
问题描述
flutter run 可正常运行,但执行 flutter run --release 或 flutter run --profile 时触发段错误,错误日志如下:
===== CRASH ===== si_signo=Segmentation fault: 11(11), si_code=1, si_addr=0x0 version=2.18.6 (stable) (Tue Dec 13 2022 +0000) on "macos_simarm64" pid=14192, thread=-1, isolate_group=isolate(0x7f910c011200), isolate=(nil)(0x0) isolate_instructions=0, vm_instructions=0 Stack dump aborted because InitialRegisterCheck failed. Dart snapshot generator failed with exit code -6
项目依赖配置如下:
version: 1.0.0+1 environment: sdk: ">=2.15.1 <3.0.0" dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter flutter_native_splash: ^2.1.6 table_calendar: ^3.0.8 image_stack: ^2.1.1 intl: ^0.17.0 shimmer: ^2.0.0 flutter_riverpod: ^1.0.4 auto_route: ^5.0.4 google_fonts: ^3.0.1 pinput: ^2.2.9 mask_text_input_formatter: ^2.3.0 firebase_core: ^1.21.1 dio: ^4.0.6 dio_cache_interceptor: ^3.2.7 dio_cache_interceptor_hive_store: ^3.1.1 http: ^0.13.5 enum_to_string: ^2.0.1 mobile_scanner: ^2.1.0 firebase_auth: ^3.3.19 image_picker: ^0.8.5+3 image_cropper: ^3.0.1 firebase_storage: ^10.2.18 fluttertoast: ^8.0.9 firebase_messaging: ^13.0.1 hive: ^2.2.1 hive_flutter: ^1.1.0 flutter_hooks: ^0.18.5+1 hooks_riverpod: ^1.0.4 local_auth: ^2.1.0 lottie: ^2.1.0 flutter_local_notifications: ^9.7.0 device_info_plus: ^4.0.1 timeago: ^3.2.2 url_launcher: ^6.1.5 focused_menu: ^1.0.5 rxdart: ^0.27.7 rate_my_app: ^1.1.3 infinite_scroll_pagination: ^3.2.0 flutter_offline: ^2.1.0 webview_flutter: ^4.0.1 shared_preferences: ^2.0.15 web_socket_channel: ^2.2.0 fl_chart: ^0.55.2 dev_dependencies: #flutter_gen_runner: auto_route_generator: ^5.0.2 firebase_core_platform_interface: ^4.5.1 build_runner: any flutter_lints: ^2.0.1 flutter_launcher_icons: ^0.11.0 flutter_test: sdk: flutter flutter_icons: android: "launcher_icon" ios: true image_path: "assets/icons/b2b_logo.png" flutter: uses-material-design: true generate: true assets: - assets/images/ - assets/ - assets/animations/ - assets/icons/ fonts: - family: SnagIcons fonts: - asset: assets/fonts/SnagIcons.ttf
应用两个月前可正常构建,回退代码后问题仍存在。
解决方案
清理缓存与构建产物
执行以下命令彻底清理旧缓存和构建文件,避免残留文件干扰:flutter clean rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ios/Pods rm ios/Podfile.lock flutter pub get cd ios && pod install && cd ..排查依赖冲突
- 移除
dev_dependencies中的firebase_core_platform_interface显式依赖,该依赖应由firebase_core自动引入,手动指定版本易引发冲突 - 逐个更新涉及原生代码的依赖(如
mobile_scanner、image_cropper、local_auth)到兼容Flutter 2.18.6的最新版本,部分旧版本可能存在release模式的适配问题
- 移除
架构适配测试(M系列Mac)
由于当前运行环境为macos_simarm64,尝试切换到x86_64架构构建:arch -x86_64 flutter run --release若此方式成功,说明是M芯片下Dart快照生成的版本兼容问题,可升级Flutter到2.19+稳定版(该版本针对M系列芯片做了优化)
临时禁用代码压缩与混淆
临时关闭代码压缩和混淆,排查是否为构建优化导致的问题:- Android:修改
android/app/build.gradle,将minifyEnabled和shrinkResources设为false - iOS:在Xcode的Build Settings中关闭
Enable Bitcode和Strip Debug Symbols During Copy
- Android:修改
检查Hive初始化逻辑
项目中使用Hive,确保release模式下Hive初始化流程无异常,比如已正确注册所有自定义TypeAdapter,避免快照生成阶段触发空指针访问
内容的提问来源于stack exchange,提问作者mboh bless-pearl
相关产品推荐
相关产品推荐

