在使用具有自定义“ Ad-Hoc”配置的fastlane构建RN应用程序时,我总是会遇到如下错误:
[01:24:15]: ▸ In file included from /Users/vagrant/git/node_modules/react-native/Libraries/LinkingIOS/RCTLinkingManager.m:8:
[01:24:15]: ▸ /Users/vagrant/git/node_modules/react-native/Libraries/LinkingIOS/RCTLinkingManager.h:10:9: fatal error: 'React/RCTEventEmitter.h' file not found
[01:24:15]: ▸ #import <React/RCTEventEmitter.h>
[01:24:15]: ▸ ^~~~~~~~~~~~~~~~~~~~~~~~~
[01:24:15]: ▸ 1 error generated.
答案 0 :(得分:2)
我遇到了类似的问题,尝试了许多替代方法后,发现问题出在Xcode中的自定义Build Configuration(在我的情况下是Alpha和Beta)。编译时,显然Xcode也会尝试在Frameworks上使用Target Build Config,这会导致错误。
解决方案一(手动)
作为beretis回答手动进行,但是很难维护,因为每当添加新的Framework / Library时,都必须在其中设置Build Configs,否则会出现新的错误。
第二种解决方案(自动)
使用react-native-schemes-manager(https://www.npmjs.com/package/react-native-schemes-manager)。
此软件包可在所有框架中同步您的自定义构建配置。
yarn add --dev react-native-schemes-manager
或
npm install --save-dev react-native-schemes-manager
在您的 package.json 中添加postinstall命令,因此,每次安装新的软件包/框架时,它将同步您的构建配置。
"scripts": {
"postinstall": "react-native-schemes-manager all"
},
仍然在package.json中,使用config添加新密钥。
...
"xcodeSchemes": {
"Debug": ["Alpha"],
"Release": ["Beta"]
},
...
在上面的示例中,所有框架将具有4种构建配置:
Debug,Release,Alpha(从Debug复制),Beta(从Release复制)。
之后,只需运行:
npm run postinstall
希望有帮助!
答案 1 :(得分:1)