【技术分享之五】同步和使用最新的引擎代码

Creator1.7测试版已经到来,既然是测试版就不免存在很多BUG,由于引擎组同学不断在修复问题,但发布出来的Beta版则明显滞后,导致很多人一直处于等待状态,或不免让人觉得引擎的问题很多。

如果你有兴趣,完全不用等待官方的Beta版本,直接自己Fork引擎的仓库并自己编译引擎,这样就能跟进引擎的最新进展了,像昨天@dumganhar同学把调试功能加上去,我很快就同步下来并编译成功,第一时间体验了在Chrome里调试模拟器的功能,和Web版本一模一样的。同时也给他们反馈了一些小问题。

官方的文档在这里,相对来说还是不够详细的,我结合自己定制过程中遇到的问题,试图将这块写详细一点,希望能够帮助论坛里有兴趣体验新功能的同学。

同步引擎

Fork和Clone引擎仓库

假定你在本地安装了Git,并且Github上有一个帐号,第一步要Fork引擎的仓库:

在右上角有一个Fork的按钮,点它Fork一份到你自己的帐号中。

然后把你Fork出来的引擎clone到本地中如:

git clone https://github.com/colinsusie/cocos2d-x-lite.git
git clone https://github.com/colinsusie/engine.git

添加源引擎为远程仓库

你现在clone的是你自己fork出来的仓库,但是你要不断的跟进官方的修改,所以首先要把官方的仓库加为远程仓库,以方便后面的合并,以cocos2d-x-lite为例,先进入clone下来的目录:

# 添加原引擎的仓库
git remote add upstream https://github.com/cocos-creator/cocos2d-x-lite.git

接着查看一下当前的远程仓库

# 查看当前的远程仓库
> git remote -v

origin  https://github.com/colinsusie/cocos2d-x-lite.git (fetch)
origin  https://github.com/colinsusie/cocos2d-x-lite.git (push)
upstream        https://github.com/cocos-creator/cocos2d-x-lite.git (fetch)
upstream        https://github.com/cocos-creator/cocos2d-x-lite.git (push)

官方的仓库就加进来了,engine也一样如上操作即可

合并官方的修改到我本地和我的Github

  • 同样操作的时候,先进入本地的引擎根目录

  • 取一下官方仓库

git fetch upstream
  • 合并upstream的修改到我本地的分支(假如是develop,目前1.7就在develop)
git merge upstream/develop
  • 最后提交到我github的远程分支。
git push
  • engine也一样如上操作即可

构建JavaScript引擎

上面的操作已经确保引擎是最新的了,接下来先构建JavaScript引擎

  • 环境要求:

    • 安装好NodeJS
    • 因为npm访问的是国外的网站,可以先设置淘宝的镜像,在命令行中:npm config set registry https://registry.npm.taobao.org
    • 安装gulp: npm install -g gulp
  • 进入到引擎目录,安装编译依赖:

npm install
  • 构建引擎
gulp build

编译后之后,就会在引擎生成bin目录,以及编译好的引擎js文件,以后更新引擎代码后,只需要执行这一步即可。上面两次是初始时只执行一次。

构建cocos2d-x引擎

  • 环境要求和上面一样,进入引擎目录:
# 安装编译依赖
npm install
# 下载依赖包,需要提前配置好 python
python download-deps.py
# 同步子 repo,需要提前配置好 git
git submodule update --init
  • 生成模拟器
gulp gen-simulator
gulp update-simulator-config
  • 生成安卓或IOS的预编译库:如果是Android则要先安装好环境,这一步不在说明之列
gulp gen-libs

如果用的是default或link模式,这一步不用执行,如果是binary则需要,建议还是不要用binary

设置自定义引擎路径

  • 运行CocosCreator1.7 beta1
  • 打开cocoscreator/编好设置,切到原生开发
  • 取消钩选内置JavaScript引擎,填好自定义的JavaScript引擎路径
  • 取消钩选内置Cocos2d-x引擎,填好自定义的Cocos2d-x引擎路径
  • 保存和关闭

最后选择用模拟器运行游戏,在Chrome中输入:
chrome-devtools://devtools/bundled/inspector.html?v8only=true&ws=127.0.0.1:5086/00010002-0003-4004-8005-000600070008
就可以调试了。

20赞

抢个沙发:couch_and_lamp:坐坐

做个小板凳~

小伙伴们一起玩起来,对着引擎组的同学一起撸

用github desktop 方便很多

感谢,我也尝尝鲜,终于可以用chrome调试了native了!

搬个小板凳~~~

@colinsusie 感谢你的分享,我用官方范例在android上用成功调试上了。


在Chrome中断点成功, 而且将Chrome关掉再打开,也能成功调试上,不像原来的firefox只能来一次。

android日志上也输出了V8的版本, 但cocos2d-x-lite显示的是1.6.0,不知道对不对,是不是最新的引擎!

但我也遇到问题,我的是Mac系统,模拟器运行,Safari上没有检测到远程调试任务。

下载beta2 (http://forum.cocos.com/t/cocos-creator-v1-7-0-10-11-beta-2/51658)吧,已经提供了,应该是可以的。

还有,看我github的文档 https://github.com/cocos-creator/cocos2d-x-lite/blob/develop/cocos/scripting/js-bindings/docs/JSB2.0-learning-zh.md#macos,mac模拟器远程调试,如果自己编译,需要在xcode中设置模拟器工程证书再重新编译模拟器。

目测对的,应该是引擎版本漏改了,后续修复。

好的,直接下beta2试试!

666,native的调试体验似乎要提升上来了,哈哈

在如下PR中修复:

https://github.com/cocos-creator/cocos2d-x-lite/pull/893

mark…感谢分享~~

请问怎么看哪个分支是1.7的,比如js引擎

目前就是C++是develop,JS是master。
官方还没有打1.7分支出来

还有就是想请教一下jsb-default目录下的main.js是如何生成的呢,我想让他生成的时候自动加一些代码,看了它跟C++引擎目录下js-template-default文件夹里的main.js还是不一样的

@jare可以帮忙看下吗,谢谢

我都是等它生成完main.js,直接在生成的目标文件动态修改的。