chore: Bump React Native to 0.85 and Reanimated to 4.4#563
Merged
Conversation
The dependency bump moved the root react-native to 0.85.3 (new-arch only), but the paper example's Android native files resolved react-native and the gradle plugin from the ROOT node_modules. The old-architecture paper app was therefore compiled against react-android 0.85.3 and failed (com.facebook.react.uimanager.layoutanimation is gone in the new-arch-only build). Point the paper Android build (settings.gradle, app/build.gradle) at the example's own node_modules (RN 0.81.4 — the last version supporting the old architecture) and add hoistingLimits so its dependencies stay local. The iOS Podfile already resolves react-native via require.resolve, so pod install picks up the local version. Verified with a clean Android build (APK built).
Expo Go ships the native Reanimated/Worklets pinned by the SDK, so the
example must match them. The bump pushed it to 4.4.1 / 0.9.1, which crashed
in Expo Go ("undefined is not a function" in NativeWorklets/installUnpackers).
Pin to the SDK 56 versions (Reanimated 4.3.1, Worklets 0.8.3); the fabric
example keeps the latest since it's a real build.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Xcode 16+/26 ship a stricter Clang that rejects fmt's consteval format-string
checks ("call to consteval function ... is not a constant expression" in
fmt/format-inl.h). RN 0.81's vendored fmt hits this on iOS. Compile only the
fmt pod as C++17 in the Podfile post_install hook so the consteval path is
skipped and fmt uses runtime validation.
Lowering the fmt pod to C++17 dodged the consteval error but broke the iOS 26 SDK's <atomic> (incompatible with <stdatomic.h> before C++23). Keep the C++ standard and instead define FMT_USE_CONSTEVAL=0 so fmt skips its consteval format-string checks and falls back to runtime validation.
fmt 11's base.h sets FMT_USE_CONSTEVAL=1 unconditionally for Apple Clang >=14, so neither a -D define nor a build setting can override it, and Xcode 16+ Clang rejects the consteval format-string checks. Patch base.h in post_install to force FMT_USE_CONSTEVAL=0 (runtime validation), keeping the C++ standard intact so <atomic> still compiles.
The fmt consteval patch cleared one wall, but RN 0.81 + Xcode 26.5 then fails on React-Fabric header resolution (and more). Old-arch RN 0.81 isn't compatible with the iOS 26.5 SDK; paper is built/CI-tested on Xcode 16.x, which has no fmt issue. Keep the Podfile clean.
- Use StyleSheet.absoluteFill instead of inlined absolute-fill keys (absoluteFillObject was dropped from RN 0.85 types). - Restore example/app @shopify/flash-list to latest (2.3.1); the bump had accidentally pinned it down to 2.0.2. - Trim the DeepReadonly comment to a single line.
The SharedValue -> ReadonlySharedValue tweak (and its comment) aren't needed: the library typechecks fine against Reanimated 4.4 with the original DeepReadonly. Keeping the bump minimal.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps the library and the web / fabric / expo example apps to React Native 0.85.3 + Reanimated 4.4.1 (Expo SDK 56).
moduleResolution: bundler,DerivedValue,StyleSheet.absoluteFillObjectremoval).node_modules.Replaces #554 (auto-closed when its branch was renamed from
fix/…todeps/…).