React-Native: Could Not find iPhone 6 Simulator问题
Posted 人生如梦91
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-Native: Could Not find iPhone 6 Simulator问题相关的知识,希望对你有一定的参考价值。
最近在github上下载的RN项目出现了两个奇怪的问题,经过网上查找和自己的实践之后,记录在此
文章目录
Could Not Find iPhone 6 Simulator
运行项目之后,出现如下问题:
出现这个问题的原因是很明显,是因为找不到iPhone模拟器,最终经过自己查找资料和一步一步跟踪调试,解决方法如下:
在执行npm install之后,我们打开node_modules/react-native/local-cli/runiOS/findMatchingSimulator.js文件,定位到第30行,代码如下所示:
可以看到,代码写的是如果模拟器的版本号不是以ios开头的,则中断执行,但是在这里我们可以使用console.log(version),将version输出来看看,如下所示:
可以看到升级Xcode之后,现有的版本号全部以com.apple.CoreSimulator开头,这样之前的代码就不适用了,我在网上查到的都是说在后面加一句,即修改成下面这样即可:
if (version.indexOf('iOS') !== 0 && !version.includes('iOS'))
continue;
这样当然是可以的,不过我是直接修改成以下代码,因为升级之后第一个条件已经不成立了:
if (!version.includes('iOS'))
continue;
但此时依然提示这个错误,于是继续走下去,发现还有一个条件,如下所示:
if (simulator.availability !== '(available)')
continue;
同样的,我们使用console.log输出simulator,得到以下结果:
可以看到,现在已经没有availability了,所以这里我们改用isAvailable方法,将以上代码替换为如下代码:
if (simulator.isAvailable !== true)
continue;
至此,该问题即可解决,但是我并没有指定任何模拟器,那模拟器是在哪里指定的呢?经过一步一步的跟踪,原来如果没有使用–simulator指定模拟器,默认的模拟器在 node_modules/react-native/local-cli/runiOS/runiOS.js 里面,滚动到最后的module.exports,里面有一个options,可以看到默认的模拟器即在这里指定:
修改default字段,以指定自己的模拟器即可。
CFBundleIdentifier", Does Not Exist
以上问题修改之后,又出现了另外一个问题,CFBundleIdentifier", Does Not Exist,使用Xcode打开项目,编译,发现找不到config.h文件,根据查找的资料,最终该问题的解决办法如下:
- 切换到 *node_modules/react-native/third-party/glog-X.X.X/*目录下,X为本机glog版本号
- 运行./configure脚本
- 打开Xcode重新编译项目
- react-native run-ios
以上是关于React-Native: Could Not find iPhone 6 Simulator问题的主要内容,如果未能解决你的问题,请参考以下文章
Could not find iPhone X simulator
Could not find proper version of cocoapods(1.11.2) in any of the sources
Could not initialize class org.apache.xpath...
JVMlinuxlinux上执行jmap命令查看JVM内存使用情况,报错:sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not f
React—Native开发之 Could not connect to development server(Android)解决方法
org.hibernate.PropertyNotFoundException: Could not find a getter for employee in class com.itcast.f_