You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端React Native Reanimated报错及AppDelegate配置问题求助

iOS环境下React Native集成react-native-reanimated的系列错误解决

项目版本信息

  • react-native 0.70.1
  • react 18.1.0
  • react-native-reanimated 2.9.1

遇到的问题及尝试操作

  • 初始错误:使用react-native-reanimated时触发 TypeError: undefined is not an object 'installCoreFunctions'
  • 尝试自定义RCTBridge初始化代码:
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self
                                         launchOptions:launchOptions];

RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                moduleName:@"MyApp"
                                         initialProperties:nil];

触发新错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate sourceURLForBridge:]: unrecognized selector sent to instance 0x283b010e0'

  • 尝试修改initialProperties:nil为initialProperties:${},触发错误:

    Use of undeclared identifier '$'

  • 同时出现内存错误:com.facebook.react.JavaScript (9): EXC_BAD_ACCESS (code=1, address=0xffffa0000c250698)

解决方案

1. 修复sourceURLForBridge:未实现错误

在AppDelegate.m中补充实现该方法,适配RN 0.70+的Hermes引擎:

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

2. 修正react-native-reanimated初始化问题

react-native-reanimated 2.x需要配置Babel插件:
在babel.config.js中添加插件配置:

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: ['react-native-reanimated/plugin'],
};

然后执行以下操作:

  • 进入iOS目录执行pod install
  • 清除Metro缓存:npx react-native start --reset-cache
  • 清理Xcode缓存(Cmd+Shift+K)后重新构建项目

3. 修正initialProperties的错误

${}是JavaScript语法,不能直接用于Objective-C代码,保持initialProperties:nil即可,无需修改。

4. 解决EXC_BAD_ACCESS内存错误

该错误多与缓存或引擎冲突有关,执行以下步骤:

  • 删除项目根目录node_modules,重新执行yarn install或npm install
  • 删除iOS目录下的build文件夹
  • 重启Xcode和Metro服务

验证步骤

  1. 进入iOS目录执行pod install
  2. 启动Metro:npx react-native start --reset-cache
  3. 重新构建iOS项目:npx react-native run-ios

内容的提问来源于stack exchange,提问作者red-devil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:55:18