Flutter生产环境应用启动崩溃求助(附崩溃日志)
应用启动崩溃问题排查
问题描述
我在自有设备上下载安装该应用可正常运行,在TestFlight中打开也能正常使用,但其他用户启动应用时会立即崩溃。该应用在Flutter开发环境下运行无任何问题。
崩溃日志
Translated Report (Full Report Below) Incident Identifier: F0394EE0-06DD-4578-B4B0-A7F25C90EF84 CrashReporter Key: 099D1046-1E88-E852-6DC3-88AB0A1D35F9 Hardware Model: Macmini9,1 Process: Runner [50409] Path: /private/var/folders/*/Runner.app/Runner Identifier: QuizAPP3D Version: 1.21 (1.21) AppStoreTools: 15A240a AppVariant: 1:MacFamily20,1:15 Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] Coalition: QuizAPP3D [26171] Date/Time: 2023-10-04 18:59:22.9700 +0200 Launch Time: 2023-10-04 18:59:22.7492 +0200 OS Version: macOS 13.6 (22G120) Release Type: User Report Version: 104 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: 4297162752 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL <h2>UNUSED SPACE AT START</h2> __TEXT 100218000-100220000 [ 32K] r-x/r-x SM=COW ...er.app/Runner Termination Reason: SIGNAL 11 Segmentation fault: 11 Terminating Process: exc handler [50409] Triggered by Thread: 0 Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 ??? 0x0 ??? 1 connectivity_plus 0x1009c8a60 @objc PathMonitorConnectivityProvider.init() + 20 2 connectivity_plus 0x1009ca334 PathMonitorConnectivityProvider.__allocating_init() + 24 [inlined] 3 connectivity_plus 0x1009ca334 specialized static SwiftConnectivityPlusPlugin.register(with:) + 308 (SwiftConnectivityPlusPlugin.swift:28) 4 connectivity_plus 0x1009c9844 static SwiftConnectivityPlusPlugin.register(with:) + 8 [inlined] 5 connectivity_plus 0x1009c9844 @objc static SwiftConnectivityPlusPlugin.register(with:) + 32 (:17) 6 Runner 0x100220048 0x100218000 + 32840 7 Runner 0x1002203ac 0x100218000 + 33708 8 UIKitCore 0x1bab6e1c4 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 296 9 UIKitCore 0x1bab6d690 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 2820 10 UIKitCore 0x1bab6b960 -[UIApplication _runWithMainScene:transitionContext:completion:] + 988 11 UIKitCore 0x1bab6b494 -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 108 12 UIKitCore 0x1bab68064 _UIScenePerformActionsWithLifecycleActionMask + 112 13 UIKitCore 0x1bab6ade0 __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 216 14 UIKitCore 0x1bab6ab64 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 332 15 UIKitCore 0x1bab6a0fc -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 624 16 UIKitCore 0x1bab69de8 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 252 17 UIKitCore 0x1bab68640 __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 148 18 UIKitCore 0x1bb2b1688 +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:] + 736 19 UIKitCore 0x1bb388b54 _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion + 224 20 UIKitCore 0x1bab681ec -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 316 21 UIKitCore 0x1badc9b0c __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.240 + 556 22 UIKitCore 0x1bab67688 -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 216 23 UIKitCore 0x1bab674f8 -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 244 24 UIKitCore 0x1bab5d730 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 520 25 UIKitCore 0x1bab5d4b0 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 288 26 FrontBoardServices 0x1a3796114 -[FBSScene _callOutQueue_agent_didCreateWithTransitionContext:completion:] + 372 27 FrontBoardServices 0x1a37b9a88 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.102 + 120 28 FrontBoardServices 0x1a3784d30 -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 196 29 FrontBoardServices 0x1a37b96bc __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke + 356 30 libdispatch.dylib 0x18f108400 _dispatch_client_callout + 20 31 libdispatch.dylib 0x18f10be70 _dispatch_block_invoke_direct + 264 32 FrontBoardServices 0x1a3784c44 FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK + 48 33 FrontBoardServices 0x1a37d40b8 -[FBSSerialQueue _targetQueue_performNextIfPossible] + 220 34 FrontBoardServices 0x1a3784be4 -[FBSSerialQueue _p
问题分析
从崩溃日志可以看出,崩溃发生在connectivity_plus插件的PathMonitorConnectivityProvider.init()方法,触发了**EXC_BAD_ACCESS (SIGSEGV)**错误,属于空指针访问(访问了0x0地址)。这说明该插件在macOS平台的初始化逻辑存在兼容性问题,或者打包时的编译/签名配置差异导致插件初始化失败。
解决方案
- 升级
connectivity_plus插件到最新稳定版本,新版本通常会修复平台兼容性bug - 检查macOS打包时的权限配置,确保应用已添加网络访问权限(在
Info.plist中配置相关网络权限项) - 尝试修改插件初始化时机,比如延迟初始化
connectivity_plus,或者在初始化前添加空值判断逻辑 - 验证Flutter发布版本的编译配置,确保打包时没有遗漏插件依赖,使用
flutter build macos --release重新打包测试
内容的提问来源于stack exchange,提问作者974 RP
相关产品推荐
相关产品推荐

