由于某个产品特性的实现需要将react-native从0.35.0升级到0.40+,结果遇到了一堆问题,当时又处于项目紧张的开发周期中,简直要了亲命,顿时感觉自己不会写代码了!
原因
react-native 0.40做了一个大的破坏性改动,RN的头文件声明指向了$(BUILT_PRODUCTS_DIR)/include/React。
This means that all iOS native libraries need a major version bump for RN 0.40. We attempt to minimize changes of this magnitude, and we apologize for any inconvenience caused.
解决方法
- 在Xcode中,进入项目的
Edit Scheme...
对话框(Product -> Scheme -> Edit Scheme...) - 选择左边栏的
Build
项 - 取消选中
Parallelize Build
- 添加
React
到Targets
中,并拖动到第一个。 -
#import "RCT*.h"
改为#import <React/RCT*.h>
- Clean, Build.
补充
Duplicate interface definition for class 'RCTBridge'
解决上面的"file not found"问题之后,可能还会遇到这个问题,解决方法是:
移除所有第三方库header search path
中的react-native引用. (手动改之前,先检查一下所用的第三方库是否已经支持0.40+了)