React Native "duplicate symbol(s)" (iOS link) in CI
ld requires each symbol to be defined once. "duplicate symbol ... for architecture arm64" means two linked objects define the same symbol: a pod linked both statically and dynamically, a library included twice, or a transitive duplicate.
What this error means
The link step fails with "duplicate symbol '_X' in: ...a.o ...b.o" and "ld: N duplicate symbols for architecture arm64".
ld
duplicate symbol '_OBJC_CLASS_$_RCTView' in:
.../libReactCommon.a(RCTView.o)
.../libReact-Core.a(RCTView.o)
ld: 1 duplicate symbol for architecture arm64Common causes
A library linked more than once
A pod is pulled in by two paths (static and dynamic, or duplicated entries), so its symbols are defined twice.
use_frameworks mode mismatch
Switching between static and dynamic frameworks without a clean reinstall leaves both copies linked.
How to fix it
Clean and reinstall pods consistently
- Remove Pods and Podfile.lock, then
pod installfresh. - Pick one linkage mode (static or
use_frameworks!) and keep it. - Rebuild after a clean.
Terminal
cd ios && rm -rf Pods Podfile.lock && pod installRemove the duplicate dependency entry
Ensure the pod or library is declared once and not also linked manually in the target.
How to prevent it
- Use a single, consistent framework linkage mode.
- Avoid declaring a pod and also linking it manually.
- Do a clean pod install after changing use_frameworks settings.
Related guides
React Native "ld: symbol(s) not found" (iOS link) in CIFix React Native iOS "ld: symbol(s) not found for architecture arm64" in CI - the linker could not find a ref…
React Native "CompileC ... error" (Xcode, iOS) in CIFix React Native iOS "CompileC ... error" in CI - a C/C++/Objective-C source in a pod or the app failed to co…
Flutter "pod install" failed (iOS) in CIFix Flutter iOS "Error running pod install" in CI - CocoaPods could not resolve or integrate pods, often due…