我有一个react-native
具有桥接 Swift 代码的应用程序,可以使用 Xcode 毫无问题地构建、运行和存档10.0
使用默认的Release
and Debug
构建配置。我用Xcode
-> Product
-> Archive
或“播放”按钮,一切都会按预期进行。伟大的!
然后今天我添加了一个新的构建配置,它与Release
。它被命名为Release copy
。我也做了同样的事Debug
以及,它的副本是Debug copy
.
如果我尝试运行相同的Archive
or Run
使用副本的任务,任务失败于Precompile bridging header
.
/Users/whaley/dev/app/theApp/theApp-Bridging-Header.h:5:9: error: 'React/RCTBridgeModule.h' file not found
#import <React/RCTBridgeModule.h>
^
1 error generated.
<unknown>:0: error: failed to emit precompiled header '/Users/whaley/Library/Developer/Xcode/DerivedData/theApp-ckvpglaqydwzhadbbyqoprcjvnod/Build/Intermediates.noindex/ArchiveIntermediates/theApp/PrecompiledHeaders/theApp-Bridging-Header-swift_320079J7441HX-clang_QK5YQQC41WXA.pch' for bridging header '/Users/whaley/dev/theApp/ios/theApp-Bridging-Header.h'
在我看来,这很奇怪,因为这应该是运行良好的构建配置的精确副本。
如果我切换回原来的构建配置,一切都很好。原件始终有效,而副本始终失败。
I tried 禁用 the Precompile bridging header
任务,但刚刚遇到了不同的且类似的错误。同样,原始构建配置在副本失败的地方有效。
我已经在使用了查找隐式依赖关系,桥接标头已正确命名,我没有使用可可足类,我已经重新启动并清除了 XcodeDerived Data
,并请记住它does正常工作。只有这些重复的构建配置才会失败。
为什么会发生这种情况?我在这里错过了一步吗?这也许是一个限制react-native
它只支持默认的构建配置?
自然地,当我发布问题时,我设法通过谷歌找到了我需要的答案
谢谢马特乌什·克里姆恰克在其网站上清楚地说明问题和解决方案。
为每个新的发布构建配置添加一个条目到标题搜索路径:
$(BUILD_DIR)/Release-$(PLATFORM_NAME)/include
为每个新的发布构建配置添加一个条目到库搜索路径:
$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)
有人可能想知道为什么当我们只更改构建配置名称并且它已经适用于发布时需要这样做。 React Native 支持开箱即用的调试和发布构建配置,而任何其他配置都需要手动设置。
果然,问题就解决了。答案是只有Release
and Debug
开箱即用,因此非标准构建配置需要额外的配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)