React Native iOS编译报错:RCTAppDelegate.h未找到,求解决方案
解决React Native新项目替换iOS目录后找不到RCTAppDelegate.h的问题
核对项目架构配置
新架构iOS项目的RCTAppDelegate相关文件逻辑和旧架构差异很大,先确认架构配置:- 打开
<projectname>/ios/Podfile,查看是否存在use_react_native!(..., :fabric_enabled => true)配置,新架构下该参数应为true。 - 打开Xcode项目,在Build Settings中搜索
ENABLE_FABRIC,确认值为YES。
- 打开
修正AppDelegate文件的引用与声明
新架构下不再依赖RCTAppDelegate.h,需调整AppDelegate文件:- 打开
<projectname>/ios/<projectname>/AppDelegate.h,删除#import <RCTAppDelegate.h>,将@interface声明改为:@interface AppDelegate : UIResponder <UIApplicationDelegate> - 打开AppDelegate.mm,添加必要的新架构头文件导入:
并按照新架构要求实现应用初始化逻辑。#import <React/RCTAppSetupUtils.h> #import <React/RCTRootView.h> #import <React/RCTBridge.h> #import <ReactCommon/RCTTurboModuleManager.h>
- 打开
重新执行依赖安装流程
- 删除iOS目录下的Pods文件夹和Podfile.lock:
rm -rf ios/Pods ios/Podfile.lock - 进入iOS目录执行
pod install:cd ios && pod install - 返回项目根目录执行
yarn run ios,可指定模拟器避免缓存冲突,比如yarn run ios --simulator="iPhone 14"
- 删除iOS目录下的Pods文件夹和Podfile.lock:
清理Xcode缓存
- 打开Xcode,点击菜单栏
Product->Clean Build Folder(快捷键Cmd+Shift+K) - 删除DerivedData目录:
rm -rf ~/Library/Developer/Xcode/DerivedData
- 打开Xcode,点击菜单栏
统一React Native版本
确保新旧项目的React Native版本一致,对比原项目和新项目的package.json中react-native版本号,统一后重新执行yarn install
内容的提问来源于stack exchange,提问作者Dan Piccolo
相关产品推荐
相关产品推荐

