IT박스

“RCTBundleURLProvider.h”파일을 찾을 수 없습니다-AppDelegate.m

itboxs 2020. 7. 16. 19:46
반응형

“RCTBundleURLProvider.h”파일을 찾을 수 없습니다-AppDelegate.m


XCode에서 React Native 앱을 실행하려고 하는데이 오류가 계속 발생합니다. 문제를 해결하는 방법을 알 수 없습니다. 어떤 제안?

XCode의 오류 스크린 샷 :

스크린 샷


노드 모듈을 삭제 한 다음 실행 npm install(또는 더 나은 원사)하고 모든 다운로드가 완료되면 실행 react-native upgrade하면 오래된 파일을 템플릿 파일로 대체 할 수있는 옵션을 제공하여 기본 종속성을 반응 네이티브로 다시 연결합니다. 문제를 해결해야합니다. 물론 Xcode에서 프로젝트를 정리하는 것을 잊지 마십시오.


xcode 제품-> 구성표-> 구성표 관리 대상에서 '+'를 클릭하여 "반응"을 선택하고 반응이 공유되도록 설정하십시오.


React Native 0.40.0 이상을 사용하는 모든 사용자에 대해 헤더 가져 오기는 RN 0.40.0 에서 크게 변경 되어 많은 .h 파일을 찾을 수 없음 오류가 발생합니다. react-native-git-upgrade디버그하는 동안 문제가 해결되었지만 릴리스 / 아카이브에서 빌드가 실패합니다.

Cocoapod 및 Xcode 8.2.1에서 RN 0.42.3사용 하고 있습니다.

이 문제를 완전히 해결하려면 Xcode> 제품> 구성표> 구성표 편집>으로 이동하십시오.

  1. Untick Parallelize 빌드 여기에 이미지 설명을 입력하십시오
  2. Targets에서 + 버튼을 클릭하고 React를 추가하십시오 여기에 이미지 설명을 입력하십시오
  3. 추가 된 React 를 대상 목록의 맨 위로 끕니다 .여기에 이미지 설명을 입력하십시오

이제 프로젝트를 정리하고 빌드하십시오.


다른 제안 중 어느 것도 내 오류를 수정하지 않았지만이 오류가 해결되었습니다.

1-Podfile 작성

ios/Podfile다음과 같은 내용으로 react-native 앱 안에 이름이 지정된 파일을 만듭니다 .

# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

target '<YOUR_APP_NAME>' do
  # Fixes required for pod specs to work with rn 0.42
  react_native_path = "../node_modules/react-native"
  pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
  pod "React", :path => react_native_path, :subspecs => [
    'Core',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket'
  ]

  pod 'GoogleMaps'  # <~~ remove this line if you do not want to support GoogleMaps on iOS

# when not using frameworks  we can do this instead of including the source files in our project (1/4):
#  pod 'react-native-maps', path: '../../'
#  pod 'react-native-google-maps', path: '../../'  # <~~ if you need GoogleMaps support on iOS
end

2-Podfile 설치

pod installios 폴더 내부 에서 명령 실행하십시오 .

3-XCode 재설정

XCode를 다시 시작하면 오류가 사라집니다.


XCode에서 React 빌드를 처음 시도한 후에이 문제가 발생했으며 실제로 팀을 선택하고 적절한 프로비저닝 후 오류를 없애기 위해 실제로 빌드하고 실행해야했습니다. 때때로 XCode는 처음 컴파일하고 링크 할 때까지 실제로 오류가 아닌 오류를 표시합니다.


다음 단계에 따라이 문제를 해결했습니다.

  1. xcode에서 프로젝트 루트를 선택하십시오.
  2. 드래그 React.xcodeproj에서 Libraries프로젝트의 루트.
  3. 에서 프로젝트 이름 (내 경우에는 name SaleKit)을 클릭하십시오.TARGETS
  4. 고르다 Build Phases
  5. Target Dependencies추가 드롭 다운React
  6. 재 구축 또는 재실행

여기에 이미지 설명을 입력하십시오


ReactNative "0.54.2"의 경우에는 다음 해결책으로 해결했습니다.

Xcode select Product->Scheme->Manage Schemes에서 'YourProject'-tvOS를 선택 해제하여 공유하지 않음으로 설정하십시오.


나에게 맞는 해결책은 React계획 을 공유 하는 것입니다.

React 구성표가없는 경우으로 새 Selecting scheme menu -> Manage Scheme -> + -> choose React구성표를 만든 다음 React 구성표를 공유로 표시하십시오.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

또한 Xcode 10을 사용하는 경우 File -> Project Settings레거시 빌드 시스템으로 이동하여 선택하십시오.

여기에 이미지 설명을 입력하십시오


npm install프로젝트 디렉토리에서 실행 react-native하여이 오류를 해결하십시오.


.xcodeproj포드를 설치 한 후 파일을 실행 중일 수 있습니다 .

닫고 .xcworkspace파일을여십시오. 그것은 나를 위해 일했다.


나는 같은 문제가 있었고 RNFIRMessaging.h를 React / RCTBundleURLProvider.h 위에 두어 문제를 해결했습니다.

따라서 다음과 같이 보입니다.

#import "AppDelegate.h"
#import "RNFIRMessaging.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

다음을 시도하십시오 :

  1. 청소 ( cmd+ shift+ K)
  2. 핵심 React 빌드-Xcode에서 스키마로 React를 선택하고 빌드하십시오 ( cmd+ B).
  3. 실패한 라이브러리를 빌드하십시오 (예 : RCTText).
  4. 앱을 빌드하십시오.

최고의 솔루션 :

Xcode에서 프로젝트의 '빌드 설정'을 열고 '헤더 검색 경로'를 검색하십시오.

다른 속성에 '예'또는 '아니오'가있는 '헤더 검색 경로'옆을 두 번 클릭하십시오.

이제 빌드 설정 아래의 "헤더 검색 경로"에 다음을 추가하십시오.

$ (SRCROOT) /../ node_modules / react-native / React $ (SRCROOT) /../ node_modules / react-native / React / Base 두 가지 모두 재귀 적으로 만드십시오.


나는 같은 문제에 직면했다. 그런 다음이 단계를 사용하기 위해 노드 .try를 삭제했다.

  1. node_modules 폴더 삭제-rm -rf node_modules && npm install
  2. 패키저 캐시 재설정-rm -fr $ TMPDIR / react- * 또는 node_modules / react-native / packager / packager.sh --reset-cache
  3. Clear Watchman 시계-Watchman Watch-del-all

그런 다음 빌드하고 확인하십시오.


프로젝트의 기본 디렉토리에서 다음을 실행합니다.

node_modules/react-native/packager/packager.sh --reset-cache

결과 :

Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
 ┌────────────────────────────────────────────────────────────────────────────┐
 │  Running packager on port 8081.                                            │
 │                                                                            │
 │  Keep this packager running while developing on any JS projects. Feel      │
 │  free to close this tab and run your own packager instance if you          │
 │  prefer.                                                                   │
 │                                                                            │
 │  https://github.com/facebook/react-native                                  │
 │                                                                            │
 └────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
   /Users/..../work/...../react_tutorial/AwesomeProject

Loading dependency graph... ERROR  Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:

lsof -i :8081

다른 패키지 프로세스가 실행 중일 때 패키지 관리자를 실행할 수 없다는 것을 알았습니다.

프로세스가 실행 중임을 발견했습니다.

lsof -i :8081

나는 kill 9 ...과정 보다 .

Xcode를 닫은 후 다음을 실행하십시오.

npm install

그리고 Xcode를 다시 시작했습니다.이 순간부터 모든 것이 예상대로 작동합니다!


React를 업그레이드 한 후이 문제에 대한 수정은의 선언 #import "RCTBundleURLProvider.h"#import <React/RCTBundleURLProvider.h>


제품-> 구성표-> 구성표 관리-> +를 클릭하십시오. 그런 다음 반응을 공유로 추가하십시오. 또한 프로젝트 이름도 있는지 확인하십시오.


실행 npm install하지 않으면 이 문제가 발생할 수 있습니다.


나는 모든 제안을 시도했지만 그들 중 아무도 리포지토리를 삭제하고 다시 복제하고 저를 위해 일한 적이 없었습니다. 그래서 내 제안은 변경 사항을 다시 커밋하고 저를 위해 일한 리포지를 다시 복제하는 것입니다.


위에서 언급 한 모든 답변을 겪었습니다.

나를 위해 일한 해결책은 다음과 같습니다.

1 단계:

운영:

npm install react-native-fcm --save 

결과적으로 프로젝트의 node_modules> react-native-fcm 아래에 디렉토리를 만듭니다.

프로젝트에 react-native-fcm 추가

2 단계:

'$(SRCROOT)/../node_modules/react-native-fcm/ios'빌드 설정에서 헤더 검색 경로에 추가해야합니다 .

헤더 검색 경로에 추가

이 두 단계는 오류를 제거하는 데 도움이되었습니다.

자세한 내용은 다음 링크를 통해 확인할 수 있습니다.

https://github.com/evollu/react-native-fcm/issues/63

https://github.com/evollu/react-native-fcm/issues/21


필자의 경우 node_modules를 삭제하고 다시 설치할 수 없으며 .60으로 인해 종속성에 문제가 발생하기 때문에 RN-0.59를 유지하고 싶 react-native-git-updgrade거나 할 수도 없었습니다 react-native upgrade.

어쨌든 내 상황은 'React / RCTBundleURLProvider.h'파일이 누락되었다는 것입니다. 이미 스키마에서 React를 사용할 수있었습니다. 내 라이브러리 디렉토리에 없었습니다. 내 검사 대상 의 빌드 설정을.

대상 종속성 내부에서 나는 또한 거기에 반응했습니다.

'React'대상 종속성을 삭제 한 다음 다시 추가했습니다. 정리 된 빌드 폴더, 프로젝트를 다시 빌드했습니다. 효과가있었습니다.


터미널 실행에서 반응 네이티브를 설치해야합니다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

그때

brew install node
brew install watchman
npm install -g react-native-cli

출처 :
https://facebook.github.io/react-native/docs/getting-started.html


프로젝트 경로에 공백이 없는지 확인하십시오. 폴더 이름을 바꾸고 공백을 삭제하면 문제가 해결됩니다.

참고 URL : https://stackoverflow.com/questions/40368211/rctbundleurlprovider-h-file-not-found-appdelegate-m

반응형