解决方案在最后,若不想浪费时间查看经过,可以拉到最后看解决方案。
近日项目重构,因系统进行了升级,原来的Xcode9升级为Xcode10,因此项目中的某些依赖失效了。如 react-native-charts-wrapper 就在旧项目上不能用了。
于是将原来RN0.50的项目升级为0.57.8,发现更跑不动了。
接着我按照指南 A step by step installation tutorial 先把比较大型的依赖跑起来。由于没有了解RN的版本变化,并且用的全manual install(老项目没有使用cocospad)建立几次项目都出现不同的问题,于是尝试使用cocoapods的安装方式,程序终于跑起来了。
此时发现 CMD+R
和 CMD+D
都用不了!
从网络上发现,这是由于使用了cocospad引起的。
首先尝试第一种方法
在Simulator的菜单栏Hardware->Keyboard->勾选Connect Hardware Keyboard,明显我已经勾选过了。
因此第一种方法失败告终
第二种方法
第二种方法是在Podfile文件中的React引入DevSupport
很明显我也已经添加了,为了保证不是这个的问题,还特意将DecSupport移到第一位,还是doesn't work
最终解决方案
之前一直没有看明白,为什么A step by step installation tutorial 里有两个关于cocospad的步骤( link subproject 和 Add Charts and SwiftyJSON ),最后在react-native的github上,找到一个描述这个问题的Issues(链接已经找不回来,全靠记忆描述),其实在tutorial里已经描述了,只是没有理解那个意思
所以最后是Podfile文件里
use_frameworks!
导致的!终于找到罪魁祸首,难以想象心情之愉悦~
解决案例
其实就是把 use_frameworks!
相关的依赖用手动的方式配置一次,然后去掉 use_frameworks!
就可以了。这里用A step by step installation tutorial 举个例子,因为我就是在这里由不能用CMD+R和CMD+D实现到可以使用CMD+R和CMD+D的。
按tutorial的流程,操作到 link subproject 这一步的时候,不要使用cocoapods的设置方式,而改为 manual 设置。
然后 Add Charts and SwiftyJSON 的步骤我这里使用cocoapods的方式成功运行。
使用manual install似乎还是有问题,不过项目没问题了就没有再追究了。