React Native 0.81 — Android 16 support, precompiled iOS builds, JSC removed
Key Points
- Targets Android 16 (API 36) by default
- Experimental precompiled iOS builds (up to 10× faster)
- Built-in JavaScriptCore removed — use the community package
Summary
React Native 0.81 updates Android support to target Android 16 (API 36) by default, deprecates the legacy SafeAreaView, removes the built-in JavaScriptCore (JSC) in favor of a community package, and introduces experimental precompiled iOS builds that can cut compile times by up to 10x. This release also includes several breaking changes and platform/tooling requirement bumps.
Key Points
-
Android
- Default target: Android 16 (API 36). Predictive back gesture enabled by default for apps targeting 16.
- Edge-to-edge requirement: SafeAreaView is deprecated; migrate to react-native-safe-area-context or alternatives.
- New gradle property edgeToEdgeEnabled to opt-in/opt-out for older versions.
- Test back navigation and large-screen adaptive layouts; Google Play native 16KB page-size requirement applies from Nov 1, 2025.
-
JavaScriptCore
- Built-in JSC removed. If your app needs JSC, install the community-maintained JSC package before upgrading.
- Hermes users are unaffected.
-
iOS builds (experimental)
- Precompiled React Native builds available; can reduce compile times dramatically when RN is the primary dependency.
- Enable via environment variables before pod install: RCT_USE_RN_DEP=1 and RCT_USE_PREBUILT_RNCORE=1.
- Limitations: cannot step into RN internals during debug; Xcode 26 requires setting SWIFT_ENABLE_EXPLICIT_MODULES=NO until patched.
-
Breaking/tooling changes
- Node.js minimum: 20.19.4+ — upgrade CI/dev environments as needed.
- Xcode minimum: 16.1+ for iOS builds.
- Metro now respects resolveRequest and getModulesRunBeforeMainModule in community CLI projects; removing custom values may be required to restore previous behavior.
- Improved DevTools reporting changes error grouping/logging; verify any backend error processing.
- New RN_SERIALIZABLE_STATE macro and target_compile_reactnative_options CMake helper for New Architecture C++ libraries — add to custom CMakeLists if applicable.
-
Other notes
- Several Android classes were made internal and a native prop (textAlignVertical) moved to paragraph props; check native libraries for compatibility.
- 0.81 is now stable; 0.78.x moves to unsupported. Use the React Native Upgrade Helper for project-specific diffs.
Recommended upgrade checklist
- Upgrade Node to >=20.19.4 and Xcode to >=16.1 in dev and CI.
- Migrate SafeAreaView usages to react-native-safe-area-context.
- If you rely on JSC, add the community JSC package before upgrading.
- Test back handling, predictive back gesture behavior, and large-screen layouts on Android.
- If using New Architecture native libraries with custom CMake, add target_compile_reactnative_options(myLib PRIVATE).
- Try experimental precompiled iOS builds via the environment flags and report feedback to the discussion linked in the release notes.