react 관련 라이브러리가 없다는 에러

Tags
공식문서

React 관련 라이브러리가 없다는 에러

기존 프로젝트에 React Native를 manually하게 추가한 경우

1 - 관련 dependencies들을 모두 include해라.
( RCTText.xcodeproj, RCTImage.xcodeproj 등 )
2 - 다음으로, 이러한 dependencies들에 의해 빌드된 바이너리 파일은 앱 바이너리link되어야 한다.
Xcode 프로젝트 설정에서 Linked Frameworks and Binaries 섹션을 이용하자.
 

CocoaPods을 사용하는 경우

1 - Podfile에 하위 설명과 함께 React을 추가했는지 확인하자.
예를들어 <Text />, <Image />와 fetch() API들을 사용한다면 아래 사항을 Podfile에 추가해야함.
pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'RCTText', 'RCTImage', 'RCTNetwork', 'RCTWebSocket', ]
2 - pod install 명령어를 입력하고, Pods/ 디렉토리가 생성됐는지 확인하자.
CocoaPods는 설치된 dependencies를 사용할 수 있게 된 이후로 생성된 .xcworkspace 파일를 사용하도록 지시한다.
 

React Native does not compile when being used as a CocoaPod

cocoapods-fix-react-native라는 코코아팟 플러그인이 있는데, 이 플러그인은 dependency manager 사용 시 차이로 인해 소스 코드의 사후 수정 가능성을 처리한다.
 

Argument list too long: recursive header expansion failed

프로젝트의 build settings에서 User Search Header PathsHeader Search Paths는 코드에 명시된 #import 헤더 파일을 Xcode가 어디서 찾을 지를 명시하는 부분이다.
Pods와 CocoaPods는 헤더파일을 찾기위해 특정 폴더의 default array를 사용한다.
⇒ 해당 설정이 덮어쓰여지진 않았는지 확인하고, 설정된 폴더의 크기가 지나치게 크진 않은지 확인하자.
폴더 크기가 크다면 Xcode가 재귀적으로 디렉토리 전체를 훑으려고 하면서 위 에러를 유발한다.
 
User Search Header PathsHeader Search Paths를 default 설정으로 되돌리려면, Build Settings 패널에서 엔트리를 선택하고 삭제하면 됨.
⇒ 모든 커스텀 오버라이딩이 제거되고 CocoaPd의 default로 설정된다.