React Native 0.67 업그레이드 후 iOS 빌드 실패 해결
문제 상황
회사 프로젝트를 React Native 0.67로 업그레이드했는데 iOS 빌드가 계속 실패했다. Android는 정상 작동했지만 iOS에서만 Flipper 관련 빌드 에러가 발생했다.
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_FlipperClient"
원인
Xcode 13에서 아키텍처 처리 방식이 변경되면서 Flipper와 일부 네이티브 모듈에서 충돌이 발생했다. React Native 0.67은 Xcode 13을 지원하지만 Podfile 설정이 필요했다.
해결 방법
ios/Podfile에 다음 설정을 추가했다.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
end
end
end
그리고 Pod 재설치를 진행했다.
cd ios
rm -rf Pods Podfile.lock
pod install
결과
빌드가 정상적으로 통과했다. Flipper는 개발 환경에서만 사용하기 때문에 프로덕션 빌드에는 영향이 없었다. 다만 M1 Mac에서는 Rosetta 모드로 시뮬레이터를 실행해야 했다.
0.67 버전은 Hermes 엔진이 기본으로 활성화되어 있어서 앱 실행 속도가 체감상 빨라진 것 같다. New Architecture는 아직 실험 단계라 프로덕션에 적용하지 않았다.