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
相关产品推荐
相关产品推荐

