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

iOS React Native应用启动报错:EXC_BAD_ACCESS问题求助

iOS React Native启动时EXC_BAD_ACCESS错误排查方案

iOS平台React Native应用启动时触发错误,错误信息:
com.facebook.react.JavaScript (10): EXC_BAD_ACCESS (code=1, address=0x1685)
项目依赖列表:

{
  "@hookstate/core": "^4.0.1",
  "@notifee/react-native": "^7.8.0",
  "@ptomasroos/react-native-multi-slider": "^2.2.2",
  "@react-native-async-storage/async-storage": "^1.17.11",
  "@react-native-community/checkbox": "^0.5.14",
  "@react-native-community/clipboard": "^1.5.1",
  "@react-native-community/geolocation": "^3.0.6",
  "@react-native-community/netinfo": "^9.4.1",
  "@react-native-community/slider": "^4.4.2",
  "@react-native-firebase/analytics": "17.4.1",
  "@react-native-firebase/app": "^17.4.1",
  "@react-native-firebase/messaging": "^17.4.1",
  "@react-native-firebase/auth": "17.4.1",
  "@react-native-firebase/crashlytics": "17.4.1",
  "@react-native-firebase/dynamic-links": "17.4.1",
  "@react-native-masked-view/masked-view": "^0.2.8",
  "@react-native/normalize-color": "^2.1.0",
  "@react-navigation/bottom-tabs": "^6.4.0",
  "@react-navigation/drawer": "^6.5.0",
  "@react-navigation/material-top-tabs": "^6.6.3",
  "@react-navigation/native": "^6.0.13",
  "@react-navigation/native-stack": "^6.9.1",
  "@react-navigation/stack": "^6.3.11",
  "@reduxjs/toolkit": "^1.9.3",
  "@twotalltotems/react-native-otp-input": "^1.3.11",
  "axios": "^1.3.4",
  "date-fns": "^2.30.0",
  "i18next": "^22.4.15",
  "moment": "^2.29.4",
  "moment-timezone": "^0.5.41",
  "react": "17.0.2",
  "react-i18next": "^12.2.0",
  "react-native": "0.68.2",
  "react-native-blob-util": "^0.18.2",
  "react-native-calendars": "^1.1295.0",
  "react-native-config": "^1.5.1",
  "react-native-country-codes-picker": "^2.2.2",
  "react-native-create-thumbnail": "^1.6.4",
  "react-native-dashed-line": "^1.1.0",
  "react-native-device-country": "^1.0.3",
  "react-native-device-info": "^10.8.0",
  "react-native-document-picker": "^8.2.0",
  "react-native-element-dropdown": "^2.9.0",
  "react-native-elements": "^3.4.3",
  "react-native-fast-image": "^8.6.3",
  "react-native-flash-message": "0.4.1",
  "react-native-gesture-handler": "^2.9.0",
  "react-native-gifted-chat": "2.4.0",
  "react-native-htmlview": "^0.16.0",
  "react-native-image-crop-picker": "^0.40.0",
  "react-native-image-slider-box": "^1.1.8",
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
  "react-native-linear-gradient": "^2.6.2",
  "react-native-media-controls": "^2.3.0",
  "react-native-meet-hour-sdk": "^3.0.22",
  "react-native-orientation-locker": "^1.5.0",
  "react-native-pager-view": "^6.2.0",
  "react-native-paper": "^5.2.0",
  "react-native-pdf": "^6.6.2",
  "react-native-permissions": "^3.8.0",
  "react-native-pie": "^1.1.2",
  "react-native-progress": "^5.0.0",
  "react-native-razorpay": "^2.3.0",
  "react-native-reanimated": "2.14.4",
  "react-native-responsive-screen": "^1.4.2",
  "react-native-safe-area-context": "4.3.1",
  "react-native-screens": "~3.10.2",
  "react-native-share": "^8.2.2",
  "react-native-shimmer-placeholder": "^2.0.9",
  "react-native-simple-gradient-progressbar-view": "^0.2.0",
  "react-native-snap-carousel": "^3.9.1",
  "react-native-svg": "12.1.0",
  "react-native-swipeable": "^0.6.0",
  "react-native-tab-view": "^3.5.2",
  "react-native-thumbnail-video": "^0.1.2",
  "react-native-timezone": "^2.2.0",
  "react-native-vector-icons": "^9.2.0",
  "react-native-video": "^5.2.1",
  "react-native-video-controls": "^2.8.1",
  "react-native-video-player": "^0.14.0",
  "react-native-webview": "^11.26.1",
  "react-redux": "^8.0.5",
  "redux": "^4.2.0",
  "redux-devtools-extension": "^2.13.9",
  "redux-persist": "^6.0.0",
  "redux-saga": "^1.1.3",
  "socket.io-client": "^4.7.1",
  "sp-react-native-in-app-updates": "^1.3.1"
}

已尝试Firebase依赖升降级、React Native版本升级,问题未解决。


排查步骤

1. 定位Native层内存访问问题

  • 开启XCode Zombie Objects检测:打开XCode → 顶部Product → Scheme → Edit Scheme → Diagnostics标签页,勾选Zombie Objects,重新运行APP。崩溃时会显示具体被野指针访问的对象,直接定位问题模块。
  • 逐个移除Native依赖:先移除react-native-meet-hour-sdk、react-native-image-crop-picker、react-native-razorpay这类涉及复杂Native逻辑的库,重新打包测试,确认是否是某一模块导致的冲突。

2. 检查JavaScript启动逻辑

  • 注释非核心初始化代码:暂时注释redux-persist持久化恢复、i18next初始化、Firebase启动逻辑等启动时执行的同步代码,逐步恢复排查,看是否是JS侧的内存引用错误。
  • 启用Hermes引擎:在ios/Podfile中修改配置:
    use_react_native!(
      :path => config[:reactNativePath],
      :hermes_enabled => true
    )
    
    执行cd ios && pod install,重新打包。Hermes的内存管理机制能有效减少JS侧内存访问错误。

3. 清理构建缓存

  • 清理iOS构建残留:
    rm -rf ios/build
    rm -rf ~/Library/Developer/Xcode/DerivedData
    cd ios && pod deintegrate && pod install
    
  • 重置Metro缓存:
    npx react-native start --reset-cache
    

4. 修复依赖版本不兼容

  • 统一Firebase模块版本:确保所有@react-native-firebase/*子模块版本完全一致(当前app是^17.4.1,其他是17.4.1,锁定为相同版本)。
  • 调整Reanimated版本:RN 0.68.2推荐搭配react-native-reanimated@2.9.0,与react-native-gesture-handler@2.9.0版本匹配,尝试降级并重新链接。

5. 系统与架构适配

  • 测试多版本iOS设备:在iOS 15、16、17真机/模拟器上分别测试,确认是否是特定系统版本的兼容性问题。
  • 调整XCode架构配置:打开XCode项目 → Build Settings → Architectures,设置为arm64,排除i386、x86_64,避免架构冲突导致的内存错误。

内容的提问来源于stack exchange,提问作者Maulik Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:06:02