Core SafeAreaView pads its content away from the notch, the Dynamic Island and the home indicator, but only on iOS 11 and later; everywhere else it is a plain View. That was fine while Android apps drew below an opaque status bar. Since Android 15's edge-to-edge enforcement (Edge-to-Edge) Android needs the same padding, and the component offers no Android support and no control over which edges to pad. React Native 0.81 36,878 deprecated it in favor of react-native-safe-area-context 2,760 . In 0.86 the export is a getter that warns once, on first access:
get SafeAreaView() {
warnOnce(
'safe-area-view-deprecated',
'SafeAreaView has been deprecated and will be removed in a future release. ' +
"Please use 'react-native-safe-area-context' instead. " +
'See https://github.com/AppAndFlow/react-native-safe-area-context',
);
return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;
},IosOnly.tsx imports it as CoreSafeArea, and the Android run printed the warning first:
WARN SafeAreaView has been deprecated and will be removed in a future release. ...
On Android the component rendered a plain View, so the screen had to add insets.top by hand to keep its title clear of the status bar, which is exactly the job the replacement does. Search your code for SafeAreaView imported from 'react-native'; the replacement has the same name, so migrating is usually a one-line import change plus a SafeAreaProvider.