기본/Xcode 업그레이드 대응 및 이제 RCTConvert.h를 찾을 수 없음
App은 Ract Native 0.35.0에서 정상적으로 실행됨을 통해 0.40.0으로 업데이트한 후react-native-git-upgrade
XCode에서 앱을 빌드/실행하려고 할 때 많은 어휘/전처리장치 문제가 발생한다.
React/RCTBridgeModule.h' file not found
이슈를 클릭하면 강조 표시된 내용이 표시됨:
#import <React/RCTBridgeModule.h>
그것은 검색 경로 문제로 보이지 않는다.
node_modules를 삭제하고 실행해 보았다.npm install
다시 말하지만 그건 아무것도 해결하지 못했어
th0th에서 지적한 바와 같이, iOS의 RN 0.40에는 획기적인 변화가 있다.간단히 말해서, RN 헤더 선언은 포함 경로를 가리키도록 업데이트된다.$(BUILT_PRODUCTS_DIR)/include/React
.
이 문제를 해결하려면 다음을 수행해야 한다.
- Xcode에서 프로젝트 체계(Product -> Scheme -> Manage Scheme -> Project를 더블 클릭)로 이동하십시오.
- 왼쪽 창에서 '빌드' 옵션을 클릭하십시오.
- 빌드 옵션에서 '빌드 병렬화'를 선택 해제하십시오.
- 그런 다음 대상 섹션에서 '+' 버튼을 클릭한 다음 'React'를 검색하십시오.이 옵션을 선택하고 '추가'를 클릭하십시오.
- 이제 'React'가 Targets 섹션에 표시되어야 한다.목록의 첫 번째 항목(프로젝트 이전)이 되도록 클릭하여 맨 위로 끄십시오.
- 프로젝트를 청소하고 빌드하십시오.
참고: react-native-fbsdk와 같은 react-native.h 파일을 참조하는 다른 라이브러리(예: react-native-fbsdk)와 유사한 헤더 문제가 있을 수 있음
반응성 0.40
교체해야 한다.#import "RCTBridgeModule.h"
와 함께#import <React/RCTBridgeModule.h>
청소하고 다시 짓는다.
0.40에 변경 사항이 있어 자세한 내용은 여기를 참조하십시오.
릴리스 정보에서 직접 인용:
이것은 모든 iOS 네이티브 라이브러리가 RN 0.40을 위한 주요 버전 범프를 필요로 한다는 것을 의미한다.우리는 이 정도 규모의 변화를 최소화하려고 노력하며, 이로 인해 발생한 불편에 대해 사과한다.
따라서 모든 기본 iOS 라이브러리는 reactive-native 버전 0.40과 호환되기 전에 업데이트가 필요할 것이다.
나도 같은 문제가 있었어.빌드 계획에서 내 앱의 테스트 대상을 제거하여 해결했다.
만약 당신의 앱이 크지 않다면,
1) rename original app
2) create the same app again react-native init <orig_app_name>
3) copy over all necessary files from your original app to the newly created one
4) adjust the package.json
5) npm install
6) react-native run-<ios|android>
새 도서관을 어디에 연결해야 할지 찾는 데 몇 시간을 보냈는데, 그것은 적어도 나에게 소중한 선택사항이자 지름길이었다.
그것이 에게 도움이 되기를 바라다.
팟을 사용하는 경우 다음 솔루션을 사용해 보십시오.
헤더 검색 경로로 이동:Pods -> TARGETS -> (YOUR TARGET, like my target is RNGL) -> Build Settings -> All -> Search Paths -> Header Search Paths
경로 추가:"${PODS_ROOT}/Headers/Public/React"
무반복의
이 단계는 내 문제를 해결하는 데 도움이 되었다.나는 "병렬 빌드 확인 해제" 단계를 시도했다.그것은 나에게 효과가 없었다.
- XCode에서 프로젝트를 여십시오.
- 라이브러리 폴더를 여십시오.React.xcodeproj 및 여러 RCT*.xcodeproj를 참조하십시오.
- React.xcodeproj를 다른 프로젝트 각각에 끌어다 놓으십시오.
- 각 프로젝트를 클릭하고 빌드 단계 탭으로 이동하십시오.
- 대상 종속성을 클릭하고 대상 종속성으로 대응 추가
내가 어떻게 작동하게 만들었는지는 다음과 같다.
- 나는 소포를 청소했다.최신 버전의 json,
- @max23_까지 트릭을 했다.
- 나는 모든 것을 교체했다.
#import '....h'
에러를 은 것이다.#import <React/.....h>
.
업데이트 위치
"RCT/BridgeModule 가져오기.h"
로
"Ract/RCT/BridgeModule 가져오기.h"
청결하고 체격
비록 시험해 보지는 않았지만, 나는 내가 아무런 변화도 하지 않고 단지 청소하고 건설하는 것이 그 속임수를 썼을 것이라고 의심한다.
경로 변경 위치:
#import <React/RCTBridgeModule.h>
다음으로:
#import <React/Base/RCTBridgeModule.h>
날 위해 일했어
'programing' 카테고리의 다른 글
vuex 작업에서 호출될 때 REST API 호출의 오류를 처리해야 하는 위치 (0) | 2022.04.04 |
---|---|
Vue 라우터 프로그래밍 방식 네비게이션이 작동하지 않음 (0) | 2022.04.04 |
문자열에서 문자 목록 제거 (0) | 2022.04.04 |
객체 배열인 상태를 매핑할 때 구성요소를 다시 렌더링하는 방법 (0) | 2022.04.04 |
RxJS v5를 사용하여 새로운 Observable(observer) { ...을(를) 어떻게 반환하십니까? (0) | 2022.04.04 |