原生平台调试

目前使用 Cocos Creator 进行游戏开发时,游戏脚本以 JavaScript 形式编写,运行在原生平台时需要经过 JSB 绑定,然后通过原生 C++ 引擎代码运行,由于运行平台不同,可能会出现和 Web 浏览器运行效果不同的地方和错误。我们可以借助 VS Code 的调试功能来调试我们的 JSB 游戏程序。

安装 Cocos-Debug VS Code 插件

Cocos Debug VS Code 插件,将解压后的 cocos-debug 文件夹拷贝到用户文件夹的 .vscode/extensions 路径下,然后启动 VS Code。 Debug,然后可以点击上面的齿轮选择 Cocos-JSB 调试方案。 插件安装指南文档。

模拟器调试

模拟器(调试) 作为预览平台,然后点击编辑器中的 运行预览 按钮在模拟器中运行游戏。 然后找到模拟器中的项目资源路径,这个路径会在 Cocos Creator 安装路径中,根据操作系统的不同,路径有一些区别:

  • CocosCreator/resources/cocos2d-x/simulator/win32
  • CocosCreator.app/Contents/Resources/cocos2d-x/simulator/mac/Simulator.app/Contents/Resources 在 Mac 平台由于 VS Code 无法通过浏览选择应用程序包(.app)之内的路径,可能需要先打开 VS Code,关闭所有已开启的文件夹,然后将 Finder 里的上述路径拖拽到 VS Code 中。 src/project.dev.js 文件中设置断点并进行调试了。先设置好断点,然后确保模拟器已经在运行的情况下,VS Code 中切换到 Debug 页面,在下拉菜单选中 Cocos-Debug,然后点击绿色三角按钮开启调试进程。 现在可以进行正常的 JSB 程序调试了。 VS Code 调试指南文档。

    Windows socket 链接错误解决方法

    在 Windows 上启动调试器时可能会链接失败并提示: ar: attachRequest: retry socket.connect launch.json 配置文件中修改 address 字段为: "address": "::1" 原因是在 Windows 上部分链接会默认使用 IPv6,因此我们需要填写 IPv6 格式的本地默认 ip 地址。

    原生工程调试

    构建发布出原生工程以后,对包括 iOS、Android、Windows、Mac 等原生平台都可以进行调试。首先要用 VS Code 打开构建发布出的原生工程,一般在 myProject/build/myProject/jsb-defaultmyProject/build/myProject/jsb-binary,根据构建工程时选择的引擎模板而定。 jsb-default/src/project.dev.js 中设置断点和调试。下面是移动设备调试时的注意事项。

    iOS 调试

    要调试 iOS 设备:
  • launch.json 文件,将 address 字段改为您 iOS 设备的 IP 地址

    Android 调试

    要调试 Android 设备:
  • 构建发布 面板,在构建和编译完成后点击运行)
  • adb forward tcp:5086 tcp:5086

    使用限制

    VS Code 只能挂载到运行中的 cocos2d-x JSB 程序,才能开始调试,因此目前不能在启动时就停在断点处。以后我们会改善这一点,目前可以在游戏中手动设置启动按钮来回避这个问题。