Wang's blog Wang's blog
首页
  • 前端文章

    • HTML教程
    • CSS
    • JavaScript
  • 前端框架

    • Vue
    • React
    • VuePress
    • Electron
  • 后端技术

    • Npm
    • Node
    • TypeScript
  • 编程规范

    • 规范
  • 我的笔记
  • Git
  • GitHub
  • VSCode
  • Mac工具
  • 数据库
  • Google
  • 服务器
  • Python爬虫
  • 前端教程
更多
收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Wang Mings

跟随大神,成为大神!
首页
  • 前端文章

    • HTML教程
    • CSS
    • JavaScript
  • 前端框架

    • Vue
    • React
    • VuePress
    • Electron
  • 后端技术

    • Npm
    • Node
    • TypeScript
  • 编程规范

    • 规范
  • 我的笔记
  • Git
  • GitHub
  • VSCode
  • Mac工具
  • 数据库
  • Google
  • 服务器
  • Python爬虫
  • 前端教程
更多
收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Python爬虫

  • 前端教程

    • 团队规范

    • Project

    • JS

    • NodeJS

    • Vue

    • React

      • Vuex与Redux比较
      • 浅谈函数式编程
      • React 知识图谱
      • React源码分析 - 挂载和渲染
      • React源码分析 - 四大组件
      • React setState是异步吗
      • React 组件最佳实践
      • ESlint代码检查规范 - React ReactNative
      • ReactNative Mac开发环境搭建
      • ReactNative Mac调试技巧
        • [#](#调试技巧清单) 调试技巧清单
        • [#](#react-native调试菜单) React Native调试菜单
          • [#](#reload) Reload
          • [#](#hot-reloading) Hot Reloading
          • [#](#enable-live-reload) Enable Live Reload
          • [#](#show-inspector) Show Inspector
        • [#](#chrome-developer-tools) Chrome Developer Tools
          • [#](#第一步-启动远程调试) 第一步:启动远程调试
          • [#](#第二步-打开开发者工具) 第二步:打开开发者工具
          • [#](#第三部-断点调试) 第三部:断点调试
        • [#](#react-devtools) react-devtools
        • [#](#charles抓包工具) Charles抓包工具
        • [#](#真机调试) 真机调试
          • [#](#iphone) IPhone
          • [#](#android) Android
          • [#](#相关链接) 相关链接
      • Redux
      • redux-actions
      • redux-sage
    • 效率工具

    • 读书笔记

  • 教程
  • 前端教程
  • React
wangmings
2022-07-19
目录

ReactNative Mac调试技巧

# # ReactNative Mac调试技巧

工欲善其事,必先利其器。上篇文章快读搭建并运行一个App应用,但离工程化开发还是远不够的。调试程序是开发过程中必不可少的,高效的调试技能可以提高开发效率,也可以及时发现bug。

启动RN应用时,同时会启一个package server的node应用(可以理解为webpack功能),每次修改js代码,不需要重新run xcode,该server服务会把最新的js代码编译并提供给Native代码调用。

# # 调试技巧清单

  • React Native调试菜单

  • chrome developer tool

  • react-devtools

  • Charles抓包工具

  • 真机调试

# # React Native调试菜单

Command⌘ + D即可调出调试菜单,里面有我们经常使用的调试功能。

Developer Menu

提示:如果Command⌘ + D无法打开,是因为模拟器与键盘断开连接了,可以在Xcode中Hardware menu->Keyboard->"Connect Hardware Keyboard"

# # Reload

重新编译App,相当于Web的F5。快捷键Command⌘ + R

# # Hot Reloading

热加载,做过Webpack工程化项目的人再熟悉不过。如果每次修改代码后需要手动刷新,效率值大大降低,热加载可以在保存代码后,自动进行增量包编译,实现模拟器的自动刷新。

# # Enable Live Reload

ReactNative还给开发者提供了自动刷新的功能,也可以对代码自动刷新。这里和Hot Reloading的区别是Live Reload是全量刷新,每次保存代码都会自动生成bundle包并发送到手机上,使得应用初始化。

# # Show Inspector

方便的查看到当前选中元素的位置、样式、层级关系、盒子模型信息等等,类似Chrome Elements Tab

# # Chrome Developer Tools

强大的Chrome可以像调试js那样来调试React Native应用。方式类似webpack的sourcemap,可以对源代码进行断点调试

# # 第一步:启动远程调试

在Developer Menu下单击"Debug JS Remotely" 启动JS远程调试功能。Chrome自动打开Tab页:“http://localhost:8081/debugger-ui”

# # 第二步:打开开发者工具

快捷键:Command⌘ + Option⌥ + I

# # 第三部:断点调试

选中需要调试的代码行。

tips:在控制台(Console)上打印变量,执行脚本等操作。在开发调试中非常有用

# # react-devtools

rn调试菜单'Show Inspector'虽然可以让开发者可以看到层级和相关样式,但展现在app中过小,也无法像Chrome elements一样,实时修改。这里推荐使用react-devtools工具,让你轻松完成这一切。配合debugger或show inspector更强大

安装

    npm install -g react-devtools
    
1
2

使用

    react-devtools
    
1
2

tips:该工具同样支持ReactJS哦

# # Charles抓包工具

reactnative的网络请求,在chrome中无法捕捉,所以需要使用抓包工具查看网络请求详细信息。Mac推荐Charles (opens new window) (opens new window)工具

# # 真机调试

# # IPhone

目前网上大部分真机调试的文章都是基于以前的版本,在笔者最新的版本v0.52已经不再需要代码替换IP地址来得到打包的JSBundle。IOS本机测试需要Apple ID账号,如果需要发布到AppStore,则需要Devloper ID。经过测试,流程如下:

  1. USB连接真机,xcode中设备选择真机

  2. 单击项目名,Target的ProjectName和ProjectNameTest中Signing选项,Team中选择你已经绑定到Apple ID账号。如果没有选择列表,该地方会让你登陆一个账号。

  3. 单击运行即可在真机中查看App运行。晃动手机也可以调出调试菜单

# # Android

  1. 根目录下执行npm start,确保package server启动,localhost:8081 (opens new window) (opens new window)可以访问

  2. 使用adb reverse命令。adb reverse tcp:8081 tcp:8081

  3. 晃动设备,打开开发者菜单,点击Dev Settings -> Debug server host for device -> 输入本机IP和8081端口

  4. 完成后晃动设备,选择Reload JS即可

# # 相关链接

React中文网 (opens new window) (opens new window)

react-devtools (opens new window) (opens new window)

编辑 (opens new window)
ReactNative Mac开发环境搭建
Redux

← ReactNative Mac开发环境搭建 Redux→

最近更新
01
theme-vdoing-blog博客静态编译问题
09-16
02
搜索引擎
07-19
03
友情链接
07-19
更多文章>
Theme by Vdoing | Copyright © 2019-2022 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式