在 iOS 模拟器中运行 React Native 应用程序时找不到 UMModuleRegistryAdapter.h
Posted
技术标签:
【中文标题】在 iOS 模拟器中运行 React Native 应用程序时找不到 UMModuleRegistryAdapter.h【英文标题】:UMModuleRegistryAdapter.h not found when running React Native app in iOS simulator 【发布时间】:2019-06-25 00:20:37 【问题描述】:我有一个简单的 React Native 应用程序,我一直在 android 上进行测试,现在想在 ios 上进行测试。它正在使用 React Navigation。
我运行了npm run ios
,但出现以下错误:
info In file included from
/Users/rbbit/reactnative/testproj1/ios/testproj1/main.m:10:
/Users/rbbit/reactnative/testproj1/ios/testproj1/AppDelegate.h:9:9: fatal error: 'UMReactNativeAdapter/UMModuleRegistryAdapter.h' file not found
#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
info 1 error generated.
我打开了 XCode,但基本上得到了相同的消息,没有其他可以帮助我调试的。
我确实看到有一个名为 react-native-adapter (https://github.com/expo/expo/tree/master/packages/%40unimodules/react-native-adapter) 的包,但是我很犹豫是否要安装它,因为我遵循了有关如何包含 react-navigation 的说明并且没有提及,假设这是相关的。
此外,该页面显示If you are using react-native-unimodules, this package will already be installed and configured!
,并且react-native-unimodules
已经在我的依赖项中。
关于如何解决这个问题的任何指示?谢谢!
【问题讨论】:
【参考方案1】:对于最新的 RN 版本 (RN 0.60+),应该使用自动链接来修复此类错误,并且只需运行 pod install
。
对于旧版本,您应该尝试:
react-native link
在项目的根文件夹中
然后在Xcode Product->Clean Build
文件夹中,重启JS服务器并尝试重建。
如果仍然无法正常工作,请从此处仔细检查配置:
https://github.com/unimodules/react-native-unimodules
和来自这里的App.delegate
:
https://gist.github.com/brentvatne/1ece8c32a3c5c9d0ac3a470460c65603
来源:
Pod 安装提醒是 Sandy 在下面的评论中首先提出的
【讨论】:
嗨弗洛林!react-native link
没有修复它。另外,我的 XCode 项目中根本没有 pod 文件(正如您包含的链接中所预期的那样)。有没有可能有一个完全没有 Cocoapods 的 XCode 项目?
其实我正要创建一个Podfile,发现它存在,但是被隐藏了。因此,按照链接中的步骤进行操作。谢谢
是的,可以有一个没有任何 CocoaPods 的项目。我很高兴这些步骤奏效了。 :)
对于遇到此问题的任何人,缺少的是运行pod install
我必须安装 cocoapods(参见 cocoapods.org),然后是 cd ios; pod install
。我相信现在反应原生通常不需要 cocoapods,但如果您使用任何使用 react-native-unimodules
的模块(例如 react-navigation
),那么它是必需的。【参考方案2】:
pod install
在我将这些行添加到我的 pod 文件之前对我不起作用:
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
和
use_unimodules!(modules_paths: ['../node_modules'])
然后做一个pod install
。
示例:https://gist.github.com/sjchmiela/6c079f2173938a9a61a7c6f053c45000
【讨论】:
你做到了,先生 确实做到了,但要知道react-native-unimodules
自 2021 年 10 月起已被弃用。来源:blog.expo.dev/…【参考方案3】:
在一个已经工作了几个月的项目上,在一个已经工作了几个月的项目上,我在正确配置的所有内容、其他答案中的所有内容以及所有 unimodules installation steps 已经完成的情况下遇到了完全相同的错误,并在新计算机上构建它。原来是因为我只是在 xCode 中使用了错误的文件。
我本应打开并运行 .xcworkspace
文件的构建,但我已经打开了 .xcodeproj
文件。
除了这个错误之外,一切似乎都正常工作,这使它看起来像是配置问题,而不是简单的“您打开了错误的文件”问题。希望如果其他人犯了同样的错误,这将为他们节省几个小时徒劳的修修补补。
【讨论】:
以上是关于在 iOS 模拟器中运行 React Native 应用程序时找不到 UMModuleRegistryAdapter.h的主要内容,如果未能解决你的问题,请参考以下文章
运行 react-native run-ios 就成功了。但不启动模拟器
react-native:有没有同时运行iOS模拟器和Android模拟器的方法?
在 iOS 模拟器上运行 React Native 应用程序时诊断进程的高 CPU 负载