App在React Native 0.35.0上正常运行。通过react-native-git-upgrade
更新到0.40.0后,在尝试在XCode中构建/运行应用程序时,我遇到了许多词法/预处理器问题。
React/RCTBridgeModule.h' file not found
点击此问题时,我看到了突出显示的内容:
#import <React/RCTBridgeModule.h>
它似乎不是搜索路径问题。
我尝试删除node_modules并再次运行npm install
,但这没有修复任何问题。
答案 0 :(得分:107)
正如第th0所指出的,iOS的RN 0.40有一个突破性的变化。简而言之,RN标头声明会更新为指向包含路径$(BUILT_PRODUCTS_DIR)/include/React
。
要解决此问题,您必须执行以下操作:
注意:您可能仍然与其他库(例如react-native-fbsdk)有类似的头问题,这些库指的是那些反应原生的.h文件。
答案 1 :(得分:6)
反应原生0.40
您必须将#import "RCTBridgeModule.h"
替换为#import <React/RCTBridgeModule.h>
然后清理并再次构建。
答案 2 :(得分:2)
0.40有一个重大变化,你可以看到详细信息here。
直接从发行说明中引用:
这意味着所有iOS本机库都需要一个主要的版本 对于RN 0.40。我们试图尽量减少这种程度的变化,我们 对由此造成的任何不便表示歉意。
因此,在与react-native版本0.40兼容之前,所有本机iOS库都需要更新。
答案 3 :(得分:1)
如果您的应用不是很大,只需
1) rename original app
2) create the same app again react-native init <orig_app_name>
3) copy over all necessary files from your original app to the newly created one
4) adjust the package.json
5) npm install
6) react-native run-<ios|android>
我花了几个小时才找到,在哪里链接新库,这对我来说至少是一个有价值的选择和捷径。
希望它可以帮助某人
答案 4 :(得分:1)
此步骤有助于解决我的问题。我试过&#34;取消勾选并行化构建&#34;脚步。它对我不起作用。
答案 5 :(得分:1)
如果您使用pod,也许可以尝试以下解决方案:
转到标题搜索路径:
Pods -> TARGETS -> (YOUR TARGET, like my target is RNGL) -> Build Settings -> All -> Search Paths -> Header Search Paths
添加路径:
"${PODS_ROOT}/Headers/Public/React"
非递归
答案 6 :(得分:0)
以下是我的工作方式:
#import '....h'
错误的#import <React/.....h>
。答案 7 :(得分:0)
从
更新到
清洁和建造。
尽管我还没有测试它,但我怀疑如果不做任何更改而只是清理并构建它就可以解决问题。
答案 8 :(得分:0)
我有同样的问题。我已经通过从构建方案中删除应用的测试目标来解决了该问题。
答案 9 :(得分:0)
更改路径:
#import <React/RCTBridgeModule.h>
收件人:
#import <React/Base/RCTBridgeModule.h>
为我工作。