개발자
안녕하세요? 에러로 고통받다가 커리어리에 남겨봅니다. ReactNative 프로젝트로 테스트플라이트 배포상태에서 3주가 지나 지난주 Xcode 16으로 업데이트 되었는데요. 그 뒤 ios 버전, 라이브러리 버전 문제는 해결했는데. Xcode 에서 build /ios/프로젝트명/AppDelegate.h 파일에서 #import <RCTAppDelegate.h> 파일을 찾을 수 없다고 나옵니다. 사양 1. M2, Sequoia 2. react-native : 0.74.3 3. Xcode 16.1 문제 해결을 위해 시도한 방법 입니다. 1. #import <React/RCTAppDelegate.h> 바꿔봄 2. #import "AppDelegate.h" 바꿔봄 3. node_module/react-native/React/Base/에서 헤더파일 찾아봄 -> 없음 4. node_module/react-native/ReactCommon/에서 헤더파일 찾아봄 -> 없음 5. 대체할 수 있는 방법 찾아봄 GPT에서 제안한 방법으로 수정 -> 결과 : 파일 찾을 수 없음 #import <UIKit/UIKit.h> #import <React/RCTBridgeDelegate.h> @interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate> @property (nonatomic, strong) UIWindow *window; @end 6. Xcode에서 경로를 추가해봄 -> 결과 : 파일 찾을 수 없음 6-1. Xcode > BuildSetting > search header 에 경로를 추가했습니다. "$(SRCROOT)/../node_modules/react-native/React", "$(SRCROOT)/../node_modules/react-native/ReactCommon", "$(SRCROOT)/../node_modules/react-native/ReactCommon/cxxreact", "$(SRCROOT)/../node_modules/react-native/Libraries", 6-2. Xcode > BuildSetting > Frame search header에 경로를 추가했습니다. "$(inherited)", "$(SRCROOT)/../node_modules/react-native/React", "$(SRCROOT)/../node_modules/react-native/ReactCommon", 7. pod 재설치, react-native 재설치, 캐시 삭제 및 라이브러리 업데이트 등.. pod.lock, Podfile, node_module, build 파일, DerivedData 폴더 삭제 후 전부 재설치. pod install --repo-update 헤르메스 사용 설정 및 use_frameworks! :linkage => :static 설정 확인. 8. react-native 최신버전(0.76.3)으로 재설치 참고 사이트 및 GPT, Monica 질의응답 공유 링크 https://github.com/facebook/react-native/issues/36611 https://stackoverflow.com/questions/75822104/rctappdelegate-h-file-not-found https://chatgpt.com/share/674e6dcf-89f8-800f-b0e6-4fa2fe58419b https://monica.im/share/chat?shareId=CQ18cvvPvsMc0r3U ** 유의미한 정보를 주신분께 감사의 마음으로 많지는 않지만 스타벅스 커피쿠폰을 드립니다 살려주세요..
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 12월 03일
처음에는 `RCTAppDelegate.h`이 `AppDelegate.h`에서 추가되는 것을 찾지 못하는 문제가 있다는 점으로 보입니다. 그러나 `RCTAppDelegate.h` 파일은 React Native 0.40 이후 버전에서 사용되지 않습니다. 대신 `React/RCTBridgeDelegate.h`와 같이 다른 라이브러리 파일들이 AppDelegate 상속을 위해 사용됩니다. 따라서 `RCTAppDelegate.h`를 참조하고 있는 코드를 제거하고 아래의 코드로 대체해보세요. ```objc #import <React/RCTBridgeDelegate.h> #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate> @property (nonatomic, strong) UIWindow *window; @end ``` 위의 코드는 기본적인 AppDelegate 선언입니다. 여기서 `UIApplicationDelegate`와 `RCTBridgeDelegate` 프로토콜을 구현합니다. 이 두 프로토콜은 앱의 생명주기 및 리액트 네이티브 모듈 브릿지에 필요한 메소드들을 정의합니다. 더욱 중요한 것은 추가로 헤더파일 검색 경로를 설정하는 것입니다. Xcode의 Build Settings 탭으로 가서 'Header Search Paths'를 찾아 수정하세요: 1. `"$(SRCROOT)/../node_modules/react-native/React"` 추가함. 2. `"${PODS_ROOT}/Headers/Public"` 추가함. 다른 도구가 작업 내역을 변경하지 않도록 하려면 Podfile에도 다음과 같이 추가하세요: ```ruby post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['HEADER_SEARCH_PATHS'] = [ '$(inherited)', '"$(SRCROOT)/../node_modules/react-native/React"', '"${PODS_ROOT}/Headers/Public"' ] end end end ``` 위의 코드는 Pods 프로젝트의 모든 타겟에 대해 검색 경로를 설정합니다. 마지막으로, 아래와 같은 명령어를 통해 모든 종속성을 업데이트하고 프로젝트를 정리할 수 있습니다: 1. `rm -rf node_modules && npm install` 2. `cd ios && pod install` 3. `cd .. && react-native run-ios` 이러한 절차를 완료 한 후에도 문제가 해결되지 않으면, 추가적인 도움이 필요할 수 있습니다. 이러한 경우에는 언제든지 제게 연락하십시오.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!