[React Native] - BUILD FAILED on run-ios 해결 방법

SeungJin Yoo
4 min readJun 1, 2021

--

React Native 개발 진행 중 새로운 모듈을 설치 하는 과정에서 문제가 생기게 되면
run-ios 실행시 빌드가 실패하는 굉장히 긴 에러를 마주치게 된다.

error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65....요약
...
*** BUILD FAILED ***
...

처음 이 에러가 발생했을 때 도저히 해결이 되지 않아 프로젝트를 새로 다시 세팅하는 등 삽질을 굉장히 많이 했는데, 구글링 시 사람들이 해결한 다양한 방법과 내가 해결했던 방법을 정리해 두려 한다.

나의 경우는 2, 3번째 방법을 시도해봤었는데 해결이 안되었다가 1번째 방법으로 해결을 했다. 빌드가 실패하는 다양한 이유가 있기 때문에 각자 상황에 맞는 해결 방법을 사용하면 될 거 같다.

1. Pod 캐시 지우기

참조
https://github.com/facebook/react-native/issues/26118

나의 경우에는 이 방법으로 해결이 되었는데,
Pod의 캐쉬가 손상되었을 때 누락된 파일이 생기고 에러가 발생한다.
때문에 Pod의 캐쉬를 제거하는 방법이다.

  1. 터미널을 열어 Pod의 캐쉬를 삭제.
rm -rf ~/Library/Caches/CocoaPods
rm -rf Pods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod deintegrate
pod setup

2. 프로젝트의 Pods 폴더를 삭제한다. ( project/ios/Pods)

3. ios 폴더 경로에서 Pod 설치

pod install

4. 이후 프로젝트 폴더로 돌아가서 run-ios 하면 해결.

2. Podfile 수정

검색시 가장 많이 나오는 방법으로 Flipper 관련 코드를 수정하는 것이다.

Flipper는 iOS Android React-Native 에서 사용할수 있는 디버깅툴이다.

ios/Podfile 경로에서

use_flipper!()
post_install do |installer|
react_native_post_install(installer)
end

위 코드를 아래 코드로 변경시켜준다.

use_flipper!({ 'Flipper' => '0.74.0' })
post_install do |installer|
flipper_post_install(installer)
end

이후 Pods폴더를 삭제해주고 pod 업데이트 실행하면 해결.

cd ios && pod update && cd ..

3. watchman과 cocoapad 재설치

watchman 재설치

brew install watchman

cocoapod 재설치

brew cleanup -d -v
brew install cocoapods

4. Xcode에서의 중복된 글꼴 파일 삭제

참조
https://github.com/oblador/react-native-vector-icons/issues/1074

글꼴이 있는 두 개의 패키지를 설치하면 중복될 가능성이 있기 때문에 동일한 글꼴이 있는지 확인합니다.
리액트 네이티브 벡터 아이콘과 네이티브 베이스를 설치했는데, 둘 다 글꼴이 있고 번들 리소스에 중복이 있어서 이 오류가 발생했습니다.

Xcode에서 중복된 글꼴 파일을 삭제하면 된다.

5. Xcode의 [CP] Copy Pods Resources 삭제 후 재빌드

참조
https://zejeworld.tistory.com/112

Xcode 실행 후 프로젝트를 선택.

Build Phases 에서 [CP] Copy Pods Resources 를 삭제하고 ⌘+shift+k 누른 뒤 ⌘+b로 새로 빌드

여기까지가 내가 찾은 해결 방법들이다. 가장 중요한건 에러가 발생한 이유를 파악하고 그에 맞는 해결을 해야하는데 아직 많이 부족함을 느낀다.

이 에러로 시간을 많이 소비하게되는 경우가 많은데 모두 빠르게 해결하셨으면 좋겠습니다!

--

--