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:
- Build succeeds on Codemagic without errors
- IPA is signed with valid distribution certificate
- TestFlight processes and accepts the build
- Tester downloads/updates from TestFlight successfully
- App opens → completely BLACK SCREEN immediately
- LaunchScreen.storyboard does not appear
- App does not auto-close (must be manually killed)
- NO crash logs generated in iOS Settings
- Same exact codebase works on Android (Google Play Internal Testing)
DEBUGGING ALREADY ATTEMPTED:
- Replaced main.dart with MINIMAL code (only Firebase init + single Scaffold with white background and Text widget) - still black screen
- Removed flutter_secure_storage package (had a known iOS 26 keychain init crash) - still black screen
- Updated IPHONEOS_DEPLOYMENT_TARGET from 13.0 to 14.0 in pbxproj to match Podfile platform - still black screen
- Tried both empty entitlements and entitlements matching the provisioning profile (com.apple.developer.applesignin + keychain-access-groups) - still black screen
- Verified GoogleService-Info.plist is registered in pbxproj
- Verified LaunchScreen.storyboard exists and is valid
- Verified Info.plist has UILaunchStoryboardName = LaunchScreen and ITSAppUsesNonExemptEncryption = false
- 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:
- What could cause a Flutter iOS app to silently fail to launch on iOS 26 with no crash logs?
- Is there a known incompatibility between iOS 26 and certain entitlement configurations?
- 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?
- 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)
- 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.