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

iOS环境使用flutter_blue各Flutter渠道均崩溃的技术求助

解决flutter_blue在iOS环境下全渠道崩溃的问题

我之前也碰到过类似的flutter_blue在iOS真机上崩溃的情况,结合你给出的环境配置和操作步骤,给你几个针对性的排查和解决方向:

1. 必须添加蓝牙权限描述

flutter_blue依赖iOS的蓝牙权限,这是导致SIGABRT崩溃的最常见原因——你可能没在Info.plist中配置对应的权限说明。

打开ios/Runner/Info.plist,添加以下两个权限键值对(适配iOS 13+):

<key>NSBluetoothAlwaysUsageDescription</key>
<string>需要蓝牙权限来连接BLE设备</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>需要蓝牙权限来搜索和连接BLE设备</string>

2. 检查flutter_blue与Flutter版本的兼容性

你使用的flutter_blue: ^0.7.2发布时间较早,和当前的Flutter 1.17.4可能存在适配问题。建议尝试升级到兼容的较新版本,修改pubspec.yaml:

dependencies:
  flutter_blue: ^0.8.0
  flutter:
    sdk: flutter

修改后执行flutter pub get再重新构建项目。

3. 开启蓝牙后台模式(可选但关键)

如果崩溃发生在后台切换场景,或者你的APP需要后台使用蓝牙,必须在Xcode中开启对应权限:

  • 打开ios/Runner.xcworkspace
  • 选中Runner target,进入Signing & Capabilities标签
  • 点击+ Capability,添加Background Modes
  • 勾选Uses Bluetooth LE accessories选项

4. 彻底清理iOS依赖缓存

Flutter的Pod缓存偶尔会导致配置异常,试试以下步骤彻底重置:

# 回到项目根目录
flutter clean
# 进入ios目录清理Pod
cd ios
pod deintegrate
pod install
# 返回根目录重新运行
cd ..
flutter run

5. 验证设备蓝牙权限状态

确保你的测试iPhone已开启蓝牙,并且在系统设置中允许该APP访问蓝牙:
打开iPhone的设置-隐私-蓝牙,确认你的APP处于允许状态。

针对你所有渠道崩溃堆栈一致的情况,大概率是配置层面的问题而非Flutter渠道本身的bug,按照上面的步骤逐一排查应该能解决问题。

内容的提问来源于stack exchange,提问作者netskink

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:37:43