React Native 0.63 업그레이드 후 iOS 빌드 실패 해결
문제 상황
프로젝트를 React Native 0.63으로 업그레이드한 후 iOS 빌드가 실패했다. Xcode 12로 업데이트한 직후라 타이밍이 겹쳐서 원인 파악에 시간이 걸렸다.
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCTWebSocketModule"
원인
0.63 버전부터 Flipper가 기본 포함되면서 CocoaPods 의존성 구조가 변경됐다. 특히 Xcode 12의 build system과 충돌하는 부분이 있었다.
해결 과정
1. CocoaPods 캐시 정리
cd ios
rm -rf Pods Podfile.lock
pod deintegrate
pod install
2. Podfile 수정
Flipper 버전을 명시적으로 고정했다.
use_flipper!({ 'Flipper' => '0.54.0' })
post_install do |installer|
flipper_post_install(installer)
end
3. Xcode Build Settings
Build Active Architecture Only를 Debug에서 YES로 설정했다. 시뮬레이터 빌드 시간도 단축되는 효과가 있었다.
추가 이슈
M1 맥에서 작업하는 동료는 추가로 sudo arch -x86_64 gem install ffi 실행이 필요했다. ARM 아키텍처 관련 이슈인데, 아직 생태계가 완전히 대응하지 못한 것 같다.
결론
React Native 업그레이드는 항상 신중해야 한다. 특히 네이티브 의존성이 많은 프로젝트일수록 더 그렇다. 다음부턴 업그레이드 전에 이슈 트래커를 먼저 확인하는 습관을 들여야겠다.