目录
文章简介
本文主要介绍如何在android和iOS设备上对cocos creator2.x版本的发布的release 版本游戏App进行代码调试,从而进行某些只有在release发布下才出现的bug进行定位、分析。
开发环境介绍
- Cocos Creator 2.4.13版本
- Android Studio Ladybug | 2024.2.1 Patch 3
- Xcode Version 16.3 (16E140)
读者不必严格按照上述环境版本进行操作,在通读全文后对照自己的开发环境,如果有因为开发环境而出现阻断性影响,可参考作者版本进行复刻开发环境。
变量约定
{buildDir} Cocos Creator build目录
{packageName} 构建设置中 Android 的Package Name;iOS的Bundle Identifier
Cocos Creator Build Project处理
- 构建参数teamplate推荐设置为default;主要原因是文中描述的操作存在修改引擎代码的操作。
- 确保{buildDir}/jsb-default路径存在;如果上述路径不存在请执行一次构建项目操作。
- 修改{buildDir}/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/jswrapper/config.hpp
//原始代码如下 #ifndef USE_V8_DEBUGGER #if defined(COCOS2D_DEBUG) && COCOS2D_DEBUG > 0 #define USE_V8_DEBUGGER 1 #else #define USE_V8_DEBUGGER 0 #endif #endif // 修改为下方代码 // #ifndef USE_V8_DEBUGGER // #if defined(COCOS2D_DEBUG) && COCOS2D_DEBUG > 0 // #define USE_V8_DEBUGGER 1 // #else // #define USE_V8_DEBUGGER 0 // #endif // #endif #define USE_V8_DEBUGGER 1
- 修改{buildDir}/jsb-default/frameworks/runtime-src/Classes/AppDelegate.cpp
//修改之前 #if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0) // Enable debugger here jsb_enable_debugger("0.0.0.0", 6086, false); #endif //修改之后 #if defined(SE_ENABLE_INSPECTOR) && (SE_ENABLE_INSPECTOR > 0) // Enable debugger here jsb_enable_debugger("0.0.0.0", 6086, false); #endif
- 上述修改的文件如果读者已经在自己的build-templates中有自定义的逻辑,请将上述修改合并到自己的实现中即可。
构建项目
完成上述修改之后,开发cocos creator的构建界面,进行项目release构建即可。
准备Android真机调试环境
1.使用Android Studio连接真机,并确保自己的开发及其与手机在一个局域网内;打开Logcat工具;在Filter栏输入package:={packageName} tag:=jswrapper;注意log中出现的结构和devtools://devtools/bundled/js_app.html?v8only=true&ws=0.0.0.0:6086/00010002-0003-4004-8005-000600070008类似的日志。拷贝链接并将0.0.0.0替换成自己的android设备ip到谷歌浏览器打开即可开始调试。
日志如下图所示:
准本iOS真机调试调试环境
1.使用Xcode打开{buildDir}/jsb-default/frameworks/runtime-src/proj.ios_mac/xxx.xcodeproj;并连接真机,修改当前Scheme的Run为Release,点击Run按钮。
2.Debug控制台会出现类似于上述Android的中出现的带有调试链接的log,复制链接,重复上述Android 的操作。