duplicate symbols error
iOS 모듈 spec 사양 추가 후 트러블 슈팅
기기의 디바이스 정보를 가져오는 iOS 네이티브 모듈을 만들기위해 spec 사양을 정의하고
yarn ios 를 실행하니 빌드 실패와 함께 아래 에러가 발생
duplicate symbol 'facebook::react::NativeDeviceInfoSpecJSI::NativeDeviceInfoSpecJSI(facebook::react::ObjCTurboModule::InitParams const&)' in:
/Users/username/Library/Developer/Xcode/DerivedData/Playground-elcoybwsurjqafbpzckeyambkply/Build/Products/Debug-iphonesimulator/React-RCTFBReactNativeSpec/libReact-RCTFBReactNativeSpec.a[4](FBReactNativeSpec-generated.o)
...
ld: 5 duplicate symbols
새로 추가한 spec의 모듈 이름을 NativeDeviceInfo 로 정의 했었는데,
iOS 빌드와 동시에 codegen이 실행되면서 동일한 이름의 NativeDeviceInfoSpec 관련 코드가 두 군데에서 동시에 생성되어 충돌하는것으로 확인 되었다.
RN이 제공하는 DeviceInfo 라는 이름의 spec이 존재하는듯 하다.
이름 충돌을 피하기 위해 spec 파일의 모듈 이름을 NativeCustomDeviceInfo 로 변경하니 빌드 실패는 해결되었다.