CRN提供了方便的调试工具和流程,前端工程师无需了解Native的开发工具和语言即可进行开发调试。
iOS中调试CRN
在模拟器中调试(仅限Mac环境)
1.首先安装XCode最新版,然后安装Commandline Tools(请自行搜索下载安装,记住JS工程师从此也是App开发工程师啦).
2.下载最新Ctrip App测试包(样例)。
安装到模拟器上,启动运行模拟器:
xcrun instruments -w 'iPhone 6s'
在已经启动好的模拟器中安装应用:
xcrun simctl install booted ctrip.app
(这特别注意,是app,不是ipa安装时需要提供的是APP的文件路径)
3.模拟器中调试,点击App后进入小海豚,从『CRN调试入口』进入,输入Ctrip URL即可进入目标页面进行调试。例如URL样例:http://localhost:5389/index.ios.bundle?CRNModuleName=xxxx&CRNType=1¶m1=yyyy,URL规则请参考Conf文档。
在真机中调试
1.下载最新Ctrip App测试包,请到MCD中下载最新版本测试包。
2.使用iTools等类似工具安装Ctrip App。
Android中调试CRN
在模拟器中调试
在真机中调试
打开测试版App内的开发者选项菜单
- 在iOS中晃动设备或者在模拟器上按下
control + ⌘ + z
。 - 在Android中晃动设备或者按下硬件菜单键(一般只有老设备或者大多数模拟器还有这个键。比如,在
genymotion
中你可以通过按下
⌘ + m
来模拟点击硬件菜单)。PC键盘上也有这个键,一般在标准键盘右边的Ctrl和右Windows键之间,即模拟鼠标右键的键。
YellowBox(黄屏警告)与RedBox(红屏报错)
调用console.warn方法会在屏幕上产生一个黄色背景的信息。点击这行信息会转入全屏的警告页面。
而调用console.error方法则会直接产生一个全屏的红色背景报错页面。
在默认情况下,开发模式中启用了黄屏警告。可以通过以下代码关闭:
console
.disableYellowBox =
true
;
console
.warn(
'YellowBox is disabled.'
);
你也可以通过代码屏蔽指定的警告,像下面这样设置一个数组:
console
.ignoredYellowBox = [
'Warning: ...'
];
数组中的字符串就是要屏蔽的警告的开头的内容。(例如上面的代码会屏蔽掉所有以Warning开头的警告内容)
Chrome开发者工具
在Chrome上调试JS代码,需要在开发者选项菜单中选择Debug JS Remotely
,这会打开一个新的http://localhost:5389/debugger-uiTab页。
在Chrome中,按下⌘ + option + i
或者选择视图(View) -> 开发者(Developer) -> 开发工具(Developer Tools)
来打开开发工具控制台。打开有异常时暂停(Pause On Caught Exceptions)选项,能够获得更好的开发体验。
如果是在真机中调试:
在iOS上 —— 打开
RCTWebSocketExecutor.m
文件,将其中的localhost
替换为你电脑的ip地址。然后晃动设备打开开发菜单,即可开始调试。对于Android设备 —— 如果你通过usb连接了一个Android 5.0或更高版本的设备,则可以通过
adb
命令建立一个从设备向电脑转发的端口:adb reverse tcp:5389 tcp:5389
(点击这里查看adb
命令的帮助)。或者,你可以通过摇晃打开开发者菜单,选择Dev Settings
,然后在Debug server host for device
中设置你电脑的ip地址:端口号
。
实时刷新
这个选项可以在JS代码变更后,自动触发所连设备或者模拟器自动刷新。以下是开启方法:
- iOS平台上选择开发者选项菜单中的
Enable Live Reload
即可开启js代码自动刷新。 - Android平台上,先打开开发者选项菜单,选择
Dev Settings
,然后选择Auto reload on JS change
选项。
FPS(每秒帧数)监视器
开发者选项菜单中的FPS覆盖层来帮助你调试性能问题。