ARTICLE AD BOX
Please verify the iOS permissions in Info.plist. A missing permission (like camera, photos, location, Bluetooth, microphone, or tracking) can cause iOS to block Flutter from rendering, resulting in a black screen even with normal logs
Add the necessary NS*UsageDescription keys depending on the plugins your app uses. Many plugins require these even if you don’t call them manually
Also double-check LaunchScreen.storyboard and consider regenerating the iOS folder if needed
You should check the following:
If any plugin tries to access a service (camera, location, notifications, Bluetooth, network info, etc.) without a permission entry, iOS may block the rendering engine — leading to a black screen with no crash.
Please confirm that these keys exist (depending on what your app uses):
<key>NSCameraUsageDescription</key> <string>Camera access is required.</string> <key>NSPhotoLibraryUsageDescription</key> <string>Photo library access is required.</string> <key>NSMicrophoneUsageDescription</key> <string>Microphone access is required.</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Location access is required.</string> <key>NSBluetoothAlwaysUsageDescription</key> <string>Bluetooth access is required.</string> <key>NSUserTrackingUsageDescription</key> <string>Tracking permission is required.</string>Even if you don’t manually use these features, some plugins (like image_picker, geolocator, firebase, etc.) request them internally. Missing permissions often cause a freeze before the first frame is drawn
Sometimes a misconfigured iOS folder causes a black screen
flutter create . rm -rf ios/Pods ios/Podfile.lock cd ios pod installIf a wrong constraint or unsupported asset is used in the Launch Screen, the screen might get stuck showing black.
Make sure the LaunchScreen has:
A simple image or logo
No unsupported constraints
No wrong asset names
happy coding :)
