あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、SEとしての経験から取り上げたり解説したりしています。

React Nativeで'ld: symbol(s) not found for architecture x86_64'のビルドエラーの解消方法

React Native で node.js のバージョンを切り替えたりしていたら、以下のエラーが出てビルドができなくなりました。

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


** BUILD FAILED **


The following build commands failed:
        Ld /Users/xxx/Library/Developer/Xcode/DerivedData/ReactNativeRealm-fvdgwjpzmnqseqamdtzavdmefgnk/Build/Products/Debug-iphonesimulator/ReactNativeRealm.app/ReactNativeRealm normal x86_64
(1 failure)

ちなみにビルドコマンドはいつもの以下のものです。

$ npx react-native run-ios

なかなか解決方法が見つからなかったのですが、以下の issue で解決方法を見つけることができました。

なんでも、Realm のバージョンがおかしくなっているようです。

github.com

$ cd ios
$ pod cache clean Realm
$ pod cache clean RealmSwift
$ pod deintegrate || rm -rf Pods
$ pod install --verbose
$ rm -rf ~/Library/Developer/Xcode/DerivedData

実行しても何も起きないコマンドもありましたが、これらのコマンドを実行後ビルドすると、ちゃんとビルドできるようになりました。