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

iOS16设备重启Flutter应用崩溃求助(flutter_facebook_auth)

iOS 16设备上Flutter应用重启崩溃(flutter_facebook_auth: ^6.0.1)

问题描述

在iOS 16设备上运行Flutter应用时出现异常:通过Xcode初次启动、热重载运行均正常,但关闭应用后重新打开时会直接崩溃。该问题仅在iOS 16设备上出现,其他系统版本设备、模拟器及Android平台均无此情况。当前使用flutter_facebook_auth: ^6.0.1插件,已严格按照官方文档完成所有配置(包括Info.plist中正确配置Facebook相关参数)。根据崩溃日志,问题出在Facebook Auth插件的注册阶段,指向SwiftFlutterFacebookAuthPlugin.register(with:)方法。

崩溃日志

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Codes: 0x0000000000000001, 0x0000000000000000
VM Region Info: 0 is not in any region. Bytes before following region: 4310401024
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START

__TEXT 100eb8000-1011d4000 [ 3184K] r-x/r-x SM=COW ...er.app/Runner
Termination Reason: SIGNAL 11 Segmentation fault: 11
Terminating Process: exc handler [3399]

Triggered by Thread: 0

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libswiftCore.dylib 0x1b2527a6c swift_getObjectType + 36
1 flutter_facebook_auth 0x101a663a0 static SwiftFlutterFacebookAuthPlugin.register(with:) + 132
2 flutter_facebook_auth 0x101a665bc @objc static SwiftFlutterFacebookAuthPlugin.register(with:) + 56
3 flutter_facebook_auth 0x101a602d8 +[FlutterFacebookAuthPlugin registerWithRegistrar:] + 72

已尝试方案

  • 执行flutter clean清理缓存
  • 执行pod update更新iOS依赖
  • 重启设备
    以上操作均未解决问题。

解决方案建议

1. 升级插件至最新稳定版

flutter_facebook_auth后续版本可能已修复iOS 16特定的注册崩溃问题。修改pubspec.yaml中的插件版本为最新版,然后执行:

flutter pub get
cd ios && pod install

2. 调整iOS端插件注册逻辑

由于崩溃指向插件注册方法,可能是二次启动时存在空指针引用。可以手动修改iOS项目代码:

  • 打开AppDelegate.swift,在application(_:didFinishLaunchingWithOptions:)方法中,确保插件注册逻辑仅执行一次,或添加空值校验后再执行注册操作。

3. 修改Xcode构建配置

  • 打开项目Build Settings,将Dead Code Stripping设置为YES
  • 确认Swift Language Version与插件要求匹配(v6.0.1要求Swift 5.0+)
  • 执行Product -> Clean Build Folder清理Xcode缓存后重新构建

4. 降级插件版本

若升级无效,尝试降级至已知兼容iOS 16的版本(如flutter_facebook_auth: ^5.4.1),重新安装依赖并构建项目。

5. 提前初始化Facebook SDK

在AppDelegate的didFinishLaunchingWithOptions方法中提前初始化Facebook SDK,再注册Flutter插件,避免注册阶段出现未初始化的对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:47:53