Help for Realm® apps / Build errors
Realm on React Native 0.86+: iOS Undefined symbols for jsi::Value
After an upgrade to React Native 0.86 or later, the iOS build of an app on realm 20.2.0 stops at the link step. It was reported with pods built as dynamic frameworks.
Updated 9 November 2026.
The error
Undefined symbols for architecture x86_64:
"facebook::jsi::Value::asBool() const", referenced from: ...
"facebook::jsi::Value::asObject(facebook::jsi::IRuntime&) const &", referenced from: ...
"facebook::react::TurboModule::TurboModule(...)", referenced from: ...
From the description of realm-js pull request #7157. The architecture in the first line depends on what you build.
When it happens
- realm 20.2.0 on iOS with React Native 0.86 or later, new architecture.
- Pods built as frameworks:
use_frameworks!in the Podfile, often needed for Firebase. The pull request author useduse_frameworks! :linkage => :dynamicwith React Native 0.87.1, and verified the fix with that setup only.
Why
realm's RealmJS.podspec only declares s.dependency 'React'. According to the pull request, when pods are built as frameworks, React Native 0.86 and later no longer link hermes-engine, React-jsi and ReactCommon/turbomodule/core into the RealmJS target through that line, so the linker cannot find the JSI symbols.
A fix was proposed upstream in #7157 on 25 September 2026 by TPXP. It has no review and is not merged.
Fix with afterdb
afterdb includes the fix from #7157, credited to its author, plus one more change to the header search paths that the fix needed in our builds.
In package.json, point the two Realm packages to afterdb:
"realm": "npm:@pomwik/afterdb@20.3.0",
"@realm/react": "npm:@pomwik/afterdb-react@0.20.1"
Then reinstall, run pod install on iOS, and rebuild. For Expo dev builds, run npx expo prebuild --clean. Your code keeps import Realm from "realm". If you do not use @realm/react, the first line is enough.
afterdb is an independent open-source fork of the realm-js SDK v20 (Apache-2.0) that we maintain, for apps on realm 20.x without Device Sync. It is not an official Realm release. Code on GitHub, package on npm.
We build and run it in CI with React Native 0.88.1 on Xcode 26.6 with no frameworks, static frameworks and dynamic frameworks, and on Xcode 26.4.1 without frameworks: the app starts on the iPhone simulator and the build for iPhone devices succeeds. Not tested yet: iOS with React Native 0.86 or 0.87 (the setup of the pull request author), Expo on iOS, and real iPhones.
Without afterdb
- Apply the change from #7157 with patch-package: in
RealmJS.podspec, replaces.dependency 'React'withinstall_modules_dependencies(s). The author reports it works in their app. In afterdb we also had to turnHEADER_SEARCH_PATHSfrom an array into a string, becauseinstall_modules_dependenciesappends to it. Check that your build still finds every header. - The pull request describes the error only with frameworks. If your app can build its pods without
use_frameworks!, that should avoid it. We have not tested this.
Need help? Send your versions and the full error for a free 15-minute check. We reply within 12 hours.