React Native 版本升级无法编译

2017/6/19 posted in  React Native

0.31.0 => 0.37.0

原创 作者:大辉

缘由

2016年后半年研究半年React Native(以下简称RN)独自完成了一版上线App,在完成之后就搁置半年时间(软件行业半年那可能会发生翻天覆地的变化),应公司要求改投了Vue的行列,并且前端全部转由Vue开发单页应用(SPA),准备嵌入可以展示网页的webview类app中,如:微信、QQ、或者RN,于是有了下面的需求。

最近项目需要优化改版部分功能,也就是上面说的改造RN的webview可以更平滑的支持Vue集成展示。

于是重新拾起RN发现确实发生了翻天覆地的变化;
举个🌰:ListView 渐渐被 FlatList 所取代,因为 FlatList 性能更佳,更多优化推荐查看RN中文网 ,也可以加官方群:115487854,管理 天地之灵晴明 都是很热心的高手。

这广告打得有点多了,言归正传。

升级填坑

最初 package.json 如下:

"dependencies": {
    "jpush-react-native": "^1.1.3",
    "react": "^15.3.2",
    "react-native": "^0.33.0",
    "react-native-update": "^3.0.2",
    ...
  }

现在 package.json 如下:

    "jcore-react-native": "^1.1.5",
    "jpush-react-native": "^1.1.3",
    "react": "^15.3.1",
    "react-native": "^0.37.0",
    "react-native-update": "^4.0.5",
    ...  // 省略部分没有更新第三方包
  }

最主要出问题导致项目启动不了的就是:
1. 极光推送:jpush-react-native
2. RN热更新:react-native-update
由于这两个包都是底层包,有很多原生代码需要修改,所以很耗精力,尤其是不懂原生开发的朋友,建议根据GitHub教程一步一步执行,要有耐心。

具体问题

说一点官方文档没有说明的问题:有时候iOS构建不成功,说找不到文件,有可能是缺少库的原因。
例如:

就是缺少下面第一个库导致编译不过去

上面仅仅是一个问题:还有好多版本不兼容的问题:
在命令行执行 react-native run-ios 启动不了可能就是编译失败了,一定要在Xcode中run 才能看到错误信息。

整理大纲