iOS app shows black screen on TestFlight launch - no crash logs (Flutter, iOS 26)

Hello,

I'm experiencing a critical issue with my Flutter iOS app on TestFlight where the app shows a completely black screen immediately after launch. The app does NOT crash (no .ips logs in iOS Settings → Analytics & Improvements), but Flutter Engine appears not to start at all. The same code runs perfectly on Android.

PROJECT INFO:

  • App Name: CNC AI Assistant
  • Bundle ID: com.beratech.cncassistant
  • Team ID: 958PPWZD27
  • Provisioning Profile UUID: 8122ca65-b15f-4daa-b0d2-1da5409c6859
  • Build CI: Codemagic
  • Flutter Version: 3.41.5
  • iOS Deployment Target: 14.0
  • Test Device: iPad15,3 running iOS 26.x

ISSUE BEHAVIOR:

  1. Build succeeds on Codemagic without errors
  2. IPA is signed with valid distribution certificate
  3. TestFlight processes and accepts the build
  4. Tester downloads/updates from TestFlight successfully
  5. App opens → completely BLACK SCREEN immediately
  6. LaunchScreen.storyboard does not appear
  7. App does not auto-close (must be manually killed)
  8. NO crash logs generated in iOS Settings
  9. Same exact codebase works on Android (Google Play Internal Testing)

DEBUGGING ALREADY ATTEMPTED:

  1. Replaced main.dart with MINIMAL code (only Firebase init + single Scaffold with white background and Text widget) - still black screen
  2. Removed flutter_secure_storage package (had a known iOS 26 keychain init crash) - still black screen
  3. Updated IPHONEOS_DEPLOYMENT_TARGET from 13.0 to 14.0 in pbxproj to match Podfile platform - still black screen
  4. Tried both empty entitlements and entitlements matching the provisioning profile (com.apple.developer.applesignin + keychain-access-groups) - still black screen
  5. Verified GoogleService-Info.plist is registered in pbxproj
  6. Verified LaunchScreen.storyboard exists and is valid
  7. Verified Info.plist has UILaunchStoryboardName = LaunchScreen and ITSAppUsesNonExemptEncryption = false
  8. AppDelegate.swift contains only GeneratedPluginRegistrant.register

PROVISIONING PROFILE ENTITLEMENTS:

  • application-identifier: 958PPWZD27.com.beratech.cncassistant
  • com.apple.developer.applesignin: Default
  • keychain-access-groups: 958PPWZD27.*, com.apple.token
  • com.apple.developer.team-identifier: 958PPWZD27
  • get-task-allow: false (production)

INSTALLED PLUGINS (from GeneratedPluginRegistrant.m):

  • firebase_auth, firebase_core, firebase_storage, cloud_firestore
  • purchases_flutter, purchases_ui_flutter (RevenueCat)
  • sign_in_with_apple, google_sign_in_ios
  • shared_preferences_foundation, path_provider_foundation
  • webview_flutter_wkwebview, video_player_avfoundation
  • url_launcher_ios, image_picker_ios, file_picker
  • permission_handler_apple, package_info_plus, device_info_plus
  • app_links, open_filex

QUESTIONS:

  1. What could cause a Flutter iOS app to silently fail to launch on iOS 26 with no crash logs?
  2. Is there a known incompatibility between iOS 26 and certain entitlement configurations?
  3. Could there be a mismatch issue between the provisioning profile entitlements and the app's actual entitlements that causes silent termination on iOS 26 specifically?
  4. How can I obtain detailed launch/crash logs from the test device when no .ips file is generated? (sysdiagnose only shows system services like BackgroundShortcutRunner, not my app)
  5. Are there any iOS 26-specific changes related to TestFlight builds or Flutter Engine initialization that I should be aware of?

I have full access to:

  • Complete pbxproj
  • Info.plist, Runner.entitlements, Release.entitlements
  • Codemagic build logs
  • Generated IPA file
  • Provisioning profile (.mobileprovision)
  • Screenshots of black screen on test device

Any guidance on diagnostic next steps or known iOS 26 issues would be greatly appreciated.

Thank you in advance.

UPDATE: I just realized something. My app uses both:

  • google_sign_in (Google Sign-In on first screen)
  • sign_in_with_apple (Apple Sign-In on first screen)

These are the very first widgets the user sees. Could there be an issue with how iOS handles these authentication providers when the entitlements match the provisioning profile? Specifically with the com.apple.developer.applesignin capability?

Quick update for additional context:

The login screen (first screen after splash) imports:

  • google_sign_in: ^6.2.1
  • sign_in_with_apple: ^6.1.2

The Apple Sign In button is only shown on iOS: if (defaultTargetPlatform == TargetPlatform.iOS) { ... }

I noticed that even with a MINIMAL main.dart (no imports beyond Firebase and a simple Scaffold), the black screen still occurs. This suggests the issue is NOT in my Dart code, but in the iOS native plugin registration phase. The flutter_secure_storage plugin was already removed.

Could there be an issue with one of these auth plugins (google_sign_in_ios or sign_in_with_apple) registering during AppDelegate initialization that silently terminates the app on iOS 26?

iOS app shows black screen on TestFlight launch - no crash logs (Flutter, iOS 26)
 
 
Q