• 在 Linux 上构建项目
    • 安装 Creator 开发版
    • 安装 Headless 依赖环境
    • 用命令行启动 Creator 并执行构建
    • 自动更新 Creator
    • 构建与编译 Android 平台
      • 安装 Android 开发环境
      • 安装 cocos2d-x-lite 仓库
      • 构建 Android 平台的工程
      • 通过 cocos 命令行来编译 Android 工程
    • 参考

    在 Linux 上构建项目

    目前 cocos-lite 的 jsb-binary 工作流以及 creator 的 asar 打包工作流仍未完成,因此本文档先介绍开发版如何构建。之后能用发布版直接构建的话,就能跳过[安装 Creator 开发版]这些步骤。等全部完成后需要在 meta.json 中链接本文。

    安装 Creator 开发版

    • 克隆 https://github.com/cocos-creator/fireball 到本地(需 GitHub 权限)
    • 安装第三方依赖库

      1. # 进入克隆下来的 repo
      2. cd path/to/repo
      3. # 安装 nvm
      4. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
      5. # 安装 Node.js,如果找不到 nvm 命令可以重新加载 bash profile 或者手工 export 环境变量
      6. nvm install node
      7. # 安装 npm CLI 模块
      8. npm install -g gulp
      9. npm install -g bower
      10. npm install -g node-gyp
      11. # 安装 npm 和 bower 模块
      12. npm install
      13. bower install
    • 安装 Creator,依次执行

      1. gulp update-hosts
      2. gulp update-builtin
      3. gulp update-electron-official
      4. gulp checkout-setting-branch
      5. gulp update-full
    • 编译 Electron 原生模块

      1. # 安装原生开发环境
      2. sudo apt-get install make -y
      3. sudo apt-get install g++ -y
      4. # 选取伟大的淘宝镜像
      5. export USE_TAOBAO_MIRROR=1
      6. # 编译
      7. gulp npm-rebuild
    • 重新更新一次

      1. gulp update
    • (可选)屏蔽 browserify 或 gulp-sourcemaps 的版本过低的 convert-source-map,否则构建时可能会堆栈溢出

      1. mv node_modules/combine-source-map/node_modules/convert-source-map/ node_modules/combine-source-map/node_modules/convert-source-map_origin
      2. mv node_modules/gulp-sourcemaps/node_modules/convert-source-map/ node_modules/gulp-sourcemaps/node_modules/convert-source-map_origin

    安装 Headless 依赖环境

    • 安装 Xvfb

      1. sudo apt-get install xvfb -y
    • 安装 xvfb-maybe

      1. npm install xvfb-maybe -g
    • 启动 Xvfb 服务器

      1. export DISPLAY=':99.0'
      2. Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
    • 安装其它 Electron 依赖库

      1. # 尝试启动 Electron
      2. xvfb-maybe node_modules/electron/dist/electron --help
      3. # 如果提示 error while loading shared libraries: `xxx.so.x`, 则安装所需的库并重复以上步骤直到 electron 命令执行成功
      4. sudo apt-get install `***` -y

      可能缺少的库有:

    提示缺少的文件 需要安装的库
    libgtk-x11-2.0.so.0 libgtk2.0-0
    libXtst.so.6 libxtst6
    libXss.so.1 libxss1
    libgconf-2.so.4 libgconf-2-4
    libnss3.so libnss3
    libasound.so.2 libasound2
    • Trouble Shooting

      • xvfb-run: error: Xvfb failed to start

        重新启动 Xvfb 服务器,并且确保 DISPLAY 环境变量已经设置好

      • Xlib: extension "RANDR" missing on display ":99.0"

        无关警告,可以忽略

      • ALSA lib ***.c:***:(***) ...

        无关警告,可以忽略

      • Error: Package Watcher Error: watch ... ENOSPC

        运行

        1. echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

        详见 http://stackoverflow.com/questions/16748737/grunt-watch-error-waiting-fatal-error-watch-enospc

    用命令行启动 Creator 并执行构建

    使用和其它平台一样的命令行参数执行构建,其中可执行文件路径需要替换成 xvfb-maybe npm start --,例如

    1. xvfb-maybe npm start -- --path path/to/project/ --build 'platform=web-mobile;'

    自动更新 Creator

    需 GitHub 权限

    1. gulp update

    构建与编译 Android 平台

    安装 Android 开发环境

    1. 需要安装的有:

      • python (需要 2.7.5 以上的 2.7.x 版本)
      • JDK
      • Android SDK
      • Android NDK
      • Ant
    2. 配置环境变量:

      • NDK_ROOT
      • ANDROID_SDK_ROOT
      • ANT_ROOT (指向 ant/bin 文件夹)
    3. 配置 Creator 的 Perference:

      • 打开 ~/.CocosCreator/settings.json
      • 修改 android-sdk-root, ant-root & ndk-root 的值(与环境变量一致)。

    安装 cocos2d-x-lite 仓库

    通过 git clone 命令将 cocos2d-x-lite 仓库 clone 到 cocos-creator/cocos2d-x 文件夹。

    构建 Android 平台的工程

    使用命令行方式来构建项目,生成 Android 平台工程。示例命令如下:

    1. xvfb-maybe npm start -- --path path/to/project/ --build 'platform=android;template=default'

    关于命令行构建项目的更多参数,参考命令行构建项目文档。

    通过 cocos 命令行来编译 Android 工程

    • 首先,需要将 cocos-creator/cocos2d-x/tools/cocos2d-console/bin 文件夹添加到系统的 PATH 环境变量中。
    • 然后,在命令行中执行如下命令来编译 Android 工程:

      1. cocos compile -s /path/to/project/build/jsb-default -p android
    • 如果在编译 Android 平台是遇到报错:Cannot run program "/path/android-sdk/.../aapt": >error=2, No such file or directory

      参考网页,执行如下命令来解决:

      1. sudo apt-get install lib32stdc++6 lib32z1

    参考

    • Testing on Headless CI Systems: https://github.com/electron/electron/blob/master/docs/tutorial/testing-on-headless-ci.md