iOS App Crashes Immediately (SIGSEGV in VSyncClient) Only When Launched Untethered

Hey Flutter Community,

I’ve encountered a puzzling runtime crash specifically on iOS, and I’m hoping someone might have seen something similar or have some ideas.

The Problem:

My Flutter app builds, installs, and runs perfectly fine on my iOS device when I run it tethered – either using flutter run or building/running directly from Xcode with the debugger attached.

However, when I try to run the app untethered (i.e., launching it directly from the device’s home screen after installing it via flutter build ipa, flutter build ios --release, or detaching the debugger from a tethered build), the app crashes immediately on launch. It builds and installs without error, but crashes right away when opened standalone.

Crash Log:

The crash occurs on the main thread during what looks like the view controller initialization:

`Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
Termination Reason: SIGNAL 11 Segmentation fault: 11
Terminating Process: exc handler [47806]

Triggered by Thread: 0

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 Flutter 0x10805624c -[VSyncClient initWithTaskRunner:callback:] + 300
1 Flutter 0x108041298 -[FlutterViewController createTouchRateCorrectionVSyncClientIfNeeded] + 216
2 Flutter 0x10803ed68 -[FlutterViewController viewDidLoad] + 396
3 UIKitCore 0x195ad20ec -[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled] + 83
4 UIKitCore 0x1956721a4 -[UIViewController loadViewIfRequired] + 935
5 UIKitCore 0x195671ddc -[UIViewController view] + 23
6 UIKitCore 0x19592a2c0 -[UIWindow addRootViewControllerViewIfPossible] + 135
… (Further down the stack trace leading to UIApplicationMain)`

(Full crash log available if needed)

Environment:

  • Flutter Version: 3.29.2 (Channel stable, Framework revision c236373904)
  • Dart Version: 3.7.2
  • Xcode Version: 16.2 (Build 16C5032a)
  • macOS Version: 15.3.2 (Build 24D81 darwin-arm64)
  • CocoaPods Version: 1.16.2
  • Target Device: iPhone - iOS 18.4 (Build 22E240)

What I’ve Tried:

  • flutter clean
  • flutter pub get
  • Deleting ios/Pods/, ios/Podfile.lock, ios/.symlinks/
  • Running pod install --repo-update within the ios/ directory
  • Restarting Mac / Xcode / Device
  • Checked basic Signing & Capabilities settings in Xcode.
  • Ensured build configurations (Debug vs. Release) don’t have obvious discrepancies, although the issue might lie here.

My Suspicion:

Since it runs perfectly fine when tethered (Debug mode likely) but crashes immediately when run standalone (Release/Profile mode likely), I suspect the issue might be related to:

  1. Build Configuration Differences: Something specific to the Release or Profile build configuration (optimizations, code stripping, different compile-time flags) is causing this runtime crash during initialization.
  2. Initialization Order/Timing: Perhaps some initialization depends on the debugger being attached, or timing changes slightly in Release mode, exposing a race condition or null pointer access (like the KERN_INVALID_ADDRESS at 0x0).
  3. Flutter Engine Issue: Maybe a subtle issue within the Flutter engine’s VSync or view setup specific to this version/environment/configuration.
  4. Dependency Conflict: A native dependency behaving differently in Release mode.

My Plan & Ask:

For now, I can continue development by relying on tethered builds, so I’m not completely blocked. I plan to park this specific issue temporarily to keep momentum on feature development.

However, I wanted to post this here in case anyone has encountered a similar immediate crash (SIGSEGV in VSyncClientor FlutterViewController viewDidLoad) specifically in untethered/Release/Profile builds on iOS. Any pointers on specific Xcode build settings (like Optimization Level, Compilation Mode, Dead Code Stripping), known issues with recent Flutter/Xcode versions, or debugging strategies for release-mode crashes would be incredibly helpful!

Thanks so much in advance for any suggestions!

Did you ever find a solution to this? I’m experiencing the same crash.

When attached to the debugger the app doesn’t crash. But when I launch the app from the Home Screen disconnected from the debugger it crashes right away. However I can run the app in ‘Release Mode’ with or without the debugger attached.

So it looks like I got my answer - running a Flutter app in Debug mode is not supported if you are not attached to the debugger. On my iPad the app was simply crashing. When doing the same thing on an iPhone the app displays a screen that explains this. You need to switch to Profile or Release mode.

1 Like