React Native "ld: symbol(s) not found" (iOS link) in CI
After compilation, ld resolves every referenced symbol against the linked libraries. "symbol(s) not found for architecture arm64" means a symbol a source uses is not provided by any linked framework or pod, so the link step fails.
What this error means
The iOS build fails at link time with "Undefined symbols for architecture arm64: ..." and "ld: symbol(s) not found for architecture arm64", listing the missing symbols.
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_RNCAsyncStorage", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1Common causes
A pod or framework is not linked
A native module was added but pods were not reinstalled, so the library providing the symbol is not linked into the target.
An architecture or build setting excludes the lib
Excluded archs, a missing search path, or a static/dynamic mismatch leaves the symbol unresolved for arm64.
How to fix it
Reinstall pods so the module links
Regenerate the Pods project so the native module is linked into the app target.
npm ci
cd ios && pod installCheck library search paths and arch settings
Verify the framework is in the target and Library Search Paths include the pod output for arm64.
cd ios && xcodebuild -workspace App.xcworkspace -scheme App -showBuildSettings | grep -i search_pathsHow to prevent it
- Run pod install whenever native modules change.
- Avoid manual archs/search-path edits that drop arm64.
- Keep the Podfile and lockfile in sync with installed modules.