问题表象
根据官网上的文档说明,安装好了所有RN相关的组件,嵌入到原有的IOS工程中成功运行,但一旦打开Debug JS Remotely
,应用就会一直处于loading js
的状态。在chrome端,DEBUG界面的status已经显示为active,并且已经有session连上了,但是打开debugger并不能获取到项目中的js,只有debugworker.js可以看到。
尝试方法
更新node_modules & pod
开始以为是pod和node_modules版本不一致的原因造成的,在RN工程中,运行rm -rf node_modules;npm start -- --reset-cache;npm install
,在IOS工程中运行pod install
。
清理后结果,没用。
iOS中设置http访问权限
看到网上有同学说iOS9之后必须手动指定http网络的访问权限,这是可能出现的问题原因之一,但并不是我当前问题的答案。
================我是中间翻网页,各种查,加群各种问,头发都快抓没了的分割线===========================
最终解决方案
最后在github上的一个人提的issue里找到,0.26版本里,iOS链接DEBUG会出现Deadlock的情况,往下翻评论,有人说他用0.25版本的RCTBatchedBridge.m
替换了0.26版本的该文件之后就可以运行了,试了下果然可以。
附上0.25版本RCTBatchedBridge.m
的github链接:https://github.com/facebook/react-native/blob/0.25-stable/React/Base/RCTBatchedBridge.m