React Native升级NPM包后iOS模拟器报FBSOpenApplicationServiceErrorDomain code=3错误如何解决
可行解决方案
以下是按优先级排序的排查方案:
- 全量清理缓存并重建依赖
只清理ios/build无法解决依赖变更带来的问题,执行全量清理操作:
清理完成后打开Xcode,按# 删除npm依赖和锁文件 rm -rf node_modules package-lock.json yarn.lock # 重新安装npm依赖 npm install # 清理iOS侧依赖并重新安装Pod cd ios rm -rf Pods Podfile.lock build pod install --repo-update cd ..Command + Option + Shift + K清空全部衍生数据,重启Xcode后再运行项目。 - 定位不兼容的第三方依赖
由于升级前项目正常运行,问题大概率出在你升级的某个带原生iOS代码的依赖上:- 优先排查react-native-reanimated、react-native-gesture-handler、react-native-permissions这类有原生适配要求的包,将其回退到升级前的版本逐个测试,定位出问题的依赖
- 如果你使用了Flipper调试工具,确认Podfile中指定的Flipper版本和RN 0.65.1匹配,RN 0.65默认适配的Flipper版本为0.93.0,过高的Flipper版本不支持Xcode 12.4,会导致启动闪退
- 查看具体崩溃日志定位问题
通用的FBSOpenApplicationServiceErrorDomain code=3错误无法定位根因,通过Xcode查看详细日志:
打开Xcode -> 顶部菜单栏Window -> Devices and Simulators -> 选中你正在使用的模拟器 -> 点击「Open Console」,搜索你的应用包名org.reactjs.native.example.myappname,查看崩溃前输出的具体错误信息,比如权限缺失、符号引用错误等,针对性修复 - 排查模拟器和配置问题
- 先卸载模拟器上已安装的同包名应用,重启模拟器后再重新运行
- 打开Xcode项目的Signing & Capabilities标签,确认Bundle ID和报错中的包名一致,如果你升级的依赖新增了权限要求(比如相机、定位),确认Info.plist中已经添加了对应的权限说明文案,缺失权限说明会导致启动直接闪退
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

