在Xcode中,我创建了一个新的Staging
构建配置。我复制了Release
配置来实现它。 Release
和Debug
配置都可以正常构建。当我选择Staging
配置时,我最终会遇到标题问题。 我已检查构建设置,以确保所有三个配置都具有相同的标头搜索路径。
作为一个重要的注意事项,我所拥有的几个相互引用的库之间会出现问题。
具体来说,我正在使用一个名为CodePush的库,它引用了React库,如下所示:
#if __has_include("RCTEventEmitter.h")
#import "RCTEventEmitter.h"
#else
#import "React/RCTEventEmitter.h"
#endif
其中RCTEventEmitter.h
文件中的#import <React/RCTBridge.h>
文件与RCTBridge文件中的文件未找到头文件的来源。
我正在使用react native 0.40和react-native-code-push 1.16.1-beta。
有关可能导致问题的原因的任何想法。如果您需要更多信息,请告诉我,我很乐意提供。我想提一下,我不相信这是图书馆的问题,而是我的设置。我怀疑这只是编译器命中的第一个库。
答案 0 :(得分:17)
问题在于RN 0.40处理标头的方式。 React只知道Release和Debug,所以你必须将Release头路径添加到你的staging配置中,并确保首先构建React作为依赖。
<强>方案:强>
Product->Scheme->Manage Schemes
。 目标依赖关系:
标题路径:
REACT_HEADERS_PATH
并将值设置为$(BUILD_DIR)/Release-$(PLATFORM_NAME)/include
。它应该解决为build/Release-iphoneos/include
$(REACT_HEADERS_PATH)
添加到仅用于分段配置的列表中。现在清洁和建造......
我在奋斗了2天后找到了这个解决方案here on Github。所有功劳都归功于该评论的作者。
答案 1 :(得分:1)
上述解决方案对我不起作用。这可能对某人有帮助。