Flutter应用部署TestFlight后闪屏崩溃问题求助
问题
我已在多台iOS和Android设备上测试应用,从未遇到过问题,但昨日将应用部署至TestFlight后,出现闪屏崩溃情况。
崩溃日志
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: 4307746816 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START ---> __TEXT 100c30000-100c40000 [ 64K] r-x/r-x SM=COW ...er.app/Runner Termination Reason: SIGNAL 11 Segmentation fault: 11 Terminating Process: exc handler [637] Triggered by Thread: 0 Thread 0 name: Thread 0 Crashed: 0 libswiftCore.dylib 0x000000019e05a330 swift_getObjectType + 40 (SwiftObject.mm:131) 1 connectivity_plus 0x000000010180eba4 static SwiftConnectivityPlusPlugin.register(with:) + 116 (SwiftConnectivityPlusPlugin.swift:19) 2 connectivity_plus 0x000000010180ef1c @objc static SwiftConnectivityPlusPlugin.register(with:) + 56 (<compiler-generated>:0) 3 connectivity_plus 0x000000010180c048 +[ConnectivityPlusPlugin registerWithRegistrar:] + 72 (ConnectivityPlusPlugin.m:13) 4 Runner 0x0000000100c380b8 0x100c30000 + 32952 5 Runner 0x0000000100c3f588 0x100c30000 + 62856 6 Runner 0x0000000100c403c0 0x100c30000 + 66496 7 UIKitCore 0x00000001a6c9e3b8 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 320 (UIApplication.m:2401) 8 UIKitCore 0x00000001a6c9d520 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 2856 (UIApplication.m:2835) 9 UIKitCore 0x00000001a6c9c504 -[UIApplication _runWithMainScene:transitionContext:completion:] + 856 (UIApplication.m:4679) 10 UIKitCore 0x00000001a6c9c150 -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 132 (_UISceneLifecycleMultiplexer.m:450) 11 UIKitCore 0x00000001a6c18c78 _UIScenePerformActionsWithLifecycleActionMask + 112 (_UISceneLifecycleState.m:109) 12 UIKitCore 0x00000001a6ca014c __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 216 (_UISceneLifecycleMultiplexer.m:566) 13 UIKitCore 0x00000001a6bc7be0 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 220 (_UISceneLifecycleMultiplexer.m:515) 14 UIKitCore 0x00000001a6bc6658 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 608 (_UISceneLifecycleMultiplexer.m:565) 15 UIKitCore 0x00000001a6bc5fc0 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 248 (_UISceneLifecycleMultiplexer.m:468) 16 UIKitCore 0x00000001a6bc5e90 __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block... + 148 (_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction.m:73) 17 UIKitCore 0x00000001a6bc5d98 +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:] + 736 (BSAnimationSettings+UIKit.m:54) 18 UIKitCore 0x00000001a6bc5620 _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion + 224 (_UISceneSettingsDiffAction.m:27) 19 UIKitCore 0x00000001a6bc52d0 -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 316 (_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction.m:58) 20 UIKitCore 0x00000001a6f490a8 __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.225 + 612 (UIScene.m:2053) 21 UIKitCore 0x00000001a6bc4454 -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 216 (UIScene.m:1722) 22 UIKitCore 0x00000001a6bc42c4 -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 244 (UIScene.m:2012) 23 UIKitCore 0x00000001a6cdca48 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 508 (UIApplication.m:4124) 24 UIKitCore 0x00000001a6cdc7e0 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 288 (UIApplicationSceneClientAgent.m:47) 25 FrontBoardServices 0x00000001bccf56d4 -[FBSScene _callOutQueue_didCreateWithTransitionContext:completion:] + 324 (FBSScene.m:549) 26 FrontBoardServices 0x00000001bccf5570 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.108 + 280 (FBSWorkspaceScenesClient.m:480) 27 FrontBoardServices 0x00000001bccf419c -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 168 (FBSWorkspace.m:411) 28 FrontBoardServices 0x00000001bccfff8c __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke + 352 (FBSWorkspaceScenesClient.m:468) 29 libdispatch.dylib 0x00000001ac855300 _dispatch_client_callout + 20 (object.m:561) 30 libdispatch.dylib 0x00000001ac858d48 _dispatch_block_invoke_direct + 284 (queue.c:496) 31 FrontBoardServices 0x00000001bccf0520 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 52 (FBSSerialQueue.m:285) 32 FrontBoardServices 0x00000001bccf04a0 -[FBSMainRunLoopSerialQueue _targetQueue_performNextIfPossible] + 240 (FBSSerialQueue.m:309) 33 FrontBoardServices 0x00000001bccf0378 -[FBSMainRunLoopSerialQueue _performNextFromRunLoopSource] + 28 (FBSSerialQueue.m:322) 34 CoreFoundation 0x00000001a489912c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 (CFRunLoop.c:1957) 35 CoreFoundation 0x00000001a48983a8 __CFRunLoopDoSource0 + 176 (CFRunLoop.c:2001) 36 CoreFoundation 0x00000001a4896b5c __CFRunLoopDoSources0 + 244 (CFRunLoop.c:2038) 37 CoreFoundation 0x00000001a4895898 __CFRunLoopRun + 828 (CFRunLoop.c:2955) 38 CoreFoundation 0x00000001a4895478 CFRunLoopRunSpecific + 608 (CFRunLoop.c:3420) 39 GraphicsServices 0x00000001e7dee4f8 GSEventRunModal + 164 (GSEvent.c:2196) 40 UIKitCore 0x00000001a6cb962c -[UIApplication _run] + 888 (UIApplication.m:3685) 41 UIKitCore 0x00000001a6cb8c68 UIApplicationMain + 340 (UIApplication.m:5270) 42 Runner 0x0000000100c4131c 0x100c30000 + 70428 43 dyld 0x00000001c75badcc start + 2240 (dyldMain.cpp:1269)
Flutter pub依赖配置
environment: sdk: ">=3.0.0 <4.0.0" dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 bloc: ^8.1.2 flutter_bloc: ^8.1.3 flutter_local_notifications: ^16.3.0 dotted_border: ^2.1.0 flutter_hooks: ^0.20.4 json_annotation: ^4.8.1 equatable: ^2.0.5 vibration: ^1.8.4 get_it: ^7.6.7 loggy: ^2.0.3 connectivity_plus: ^5.0.2 flutter_svg: ^2.0.9 reorderables: ^0.6.0 chopper: ^7.1.0+1 flutter_spinkit: ^5.2.0 cupertino_icons: ^1.0.6 xml: ^6.5.0 url_launcher: ^6.2.3 retrofit: ^4.0.3 dio: ^5.4.0 http: ^1.2.0 flutter_map: ^6.1.0 latlong2: ^0.9.0 flutter_map_marker_cluster: ^1.3.4 flutter_map_location_marker: ^8.0.4 permission_handler: ^11.2.0 geolocator: ^10.1.0 flutter_map_cache : ^1.3.1 dio_cache_interceptor_file_store : ^1.2.3 stream_transform: ^2.1.0 background_fetch: ^1.2.2 marquee: ^2.2.3 shared_preferences: ^2.2.2 snapping_sheet: ^3.1.0 fluttertoast: ^8.2.4 uuid: ^4.3.3 package_info_plus: ^5.0.1 firebase_core: ^2.24.2 firebase_messaging: ^14.7.10 device_info_plus: ^9.1.1 flutter_html: ^3.0.0-beta.2 flutter_open_app_settings: ^0.1.4 webview_flutter: ^4.4.4 objectbox: ^2.4.0 objectbox_flutter_libs: ^2.4.0 screen_brightness: ^0.2.2+1 auto_size_text: ^3.0.0 flutter_map_tile_caching: ^9.0.0-dev.5 flutter_native_splash: ^2.3.9 dev_dependencies: flutter_test: sdk: flutter bloc_test: ^9.1.5 flutter_inappwebview: ^6.0.0 pigeon: ^16.0.3 build_runner: ^2.4.8 json_serializable: ^6.7.1 retrofit_generator: ^8.0.6 objectbox_generator: ^2.4.0 flutter_gen_runner: ^5.4.0 mockito: ^5.4.4 open_file: ^3.3.2 flutter_lints: ^3.0.1 swagger_dart_code_generator: ^2.14.2 chopper_generator: ^7.1.0 dependency_validator: ^3.0.0
我遇到的情况是:第一次崩溃时修复了对应包,但再次部署后,下一个使用.swift源文件而非仅.m和.h文件的包又引发崩溃。怀疑可能是Firebase问题,但配置看起来正确,希望获得解决该启动崩溃问题的思路。
解决思路
核心问题定位
从崩溃日志看,崩溃发生在connectivity_plus的Swift插件注册阶段,属于空指针访问(EXC_BAD_ACCESS),说明Swift运行时尝试访问空对象的类型信息。这类问题通常和Swift与OC桥接、代码签名、Swift库初始化顺序或第三方库兼容性有关。
具体排查步骤
检查iOS项目Swift基础配置
- 打开iOS目录下的
Runner.xcworkspace,进入Runnertarget的Build Settings:- 确认
Always Embed Swift Standard Libraries在Debug和Release模式下均设为YES - 确保
Swift Language Version统一(推荐5.0及以上)
- 确认
- 查看
Frameworks, Libraries, and Embedded Content,所有含Swift代码的第三方库(如connectivity_plus、firebase_messaging)需设置为Embed & Sign
- 打开iOS目录下的
彻底清理缓存并重建项目
执行以下命令清理所有缓存,避免旧构建文件干扰:
相关产品推荐
相关产品推荐

