Update react-native-reanimated patch and fix iOS EAS build issues#593
Merged
Conversation
Add a patch file (patches/react-native-reanimated+4.1.6.patch) with native changes to react-native-reanimated (C++/Fabric updates, ReanimatedModuleProxy, headers and related Android build artifacts included in the patch). Update .gitignore to re-add the Xcode GoogleService-Info.plist entry and ignore build archives (*.tar.gz). This change applies local fixes/workarounds to the reanimated native code and prevents build archive files from being committed.
Update Node engine versions to 20.19.4 across eas.json (development, preview, production) and package.json to keep CI/local tooling consistent. Also rename the react-native-reanimated patch file from 4.1.6 to 4.1.7 to match the updated dependency versioning.
The react-native-reanimated patch accidentally included 578+ Android build cache files from android/.cxx/ (binary .ninja_deps, compiled objects, CMake caches with absolute local paths). These malformed binary patch entries caused git apply to fail on the EAS iOS macOS workers, killing npm install in ~2 min. Replace with a clean 939-line patch containing only the 4 necessary C++ source changes (UpdatesRegistry.cpp/h, ReanimatedModuleProxy.cpp/h). Also rename both patch files to match their actually-installed package versions (4.1.6, 23.8.4) to eliminate patch-package version mismatch warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Change package.json override for @xmldom/xmldom from ">=0.8.13" to "~0.8.13" to enforce a specific compatible patch range. Update package-lock.json accordingly: add nested @xmldom 0.8.13 entries for several packages and remove the top-level 0.9.10 entry. Also bump the package-lock Node engine requirement to ">=20.19.4".
Adds @react-native-firebase+app+23.8.8.patch to replace <React/RCTXxx.h> includes with #if __has_include(<React-Core/RCTXxx.h>) guards in all RNFBApp iOS source files, fixing the -Werror,-Wnon-modular-include-in- framework-module build failure under use_frameworks! :static. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Xcode 26's explicitly-built modules precompile RNFBApp as a framework module, and its non-modular <React/RCT*.h> includes are a hard error that CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES cannot suppress in that build step. Use expo-build-properties ios.forceStaticLinking (expo/expo#39742) to build RNFBApp, RNFBCrashlytics and RNFBPerf as static libraries instead of static frameworks, so the framework-module rule no longer applies. Remove the previous patch-package workarounds: the app patch was proven ineffective by the build log (the #else fallback import still compiled), and the crashlytics patch's '@import RNFBApp;' both triggered the failing module precompile and would break outright against a static library. https://claude.ai/code/session_011Pb73hN3z9CRdUGM6wfvnT
Describe the forceStaticLinking mechanism that replaced the patch-package workarounds and the removal of the unused use_modular_headers podfile property. https://claude.ai/code/session_011Pb73hN3z9CRdUGM6wfvnT
Remove React Native Firebase patches and use forceStaticLinking
The lockfile had resolved the ~4.1.6 range to 4.1.7, but the repo's patch-package patch (patches/react-native-reanimated+4.1.6.patch) was generated against 4.1.6. It removes performNonLayoutOperations from ReanimatedModuleProxy in Common/cpp, and 4.1.7's android/NativeProxy.cpp added a call site the patch doesn't cover, causing the C++ compile error: NativeProxy.cpp:135: no member named 'performNonLayoutOperations' in 'reanimated::ReanimatedModuleProxy' Pinning to exactly 4.1.6 keeps the installed package in sync with the patch. Verified patch-package applies cleanly to 4.1.6 with no dangling references to the removed methods in the Android, Common, or Apple native sources. https://claude.ai/code/session_01MJ2ySZUv4HUKwVHn5BMDU8
patch-package only exits non-zero on failed patch application when CI is set; locally it just warns, letting a broken native patch go unnoticed until a build fails. --error-on-fail surfaces it at install time. https://claude.ai/code/session_01MJ2ySZUv4HUKwVHn5BMDU8
Remove tilde from react-native-reanimated version constraint
- Bump version to 1.2.2 in package.json, package-lock.json, app.json, android/app/build.gradle and ios/BitSleuthWallet/Info.plist - Convert the [Unreleased] changelog section into the 1.2.2 entry and backfill notable changes since v1.2.1 (Satoshi fee fallback, Firebase Performance, reanimated pin, security fixes, build fixes) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Release v1.2.2
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.
Update version v1.2.2