Cocos2d-JS打包, cocos2dx-3.0

时间:2023-02-08 18:18:04

Cocos2d-JS打包

zeroyang2014-08-14 10:37:36831 次阅读

Cocos2d-JS是Cocos2d-x的Javascript版本,融合了Cocos2d-html5和Cocos2d-x JSBinding。它支持Cocos2d-x的所有特性并提供更简单易用的Javascript风格API。


使用Cocos2d-HTML5,我们可以很方便用Javascript来开发游戏。然后通过Cocos2d-x JSBinding的方式可以将游戏编译到手机上。 下面就来介绍如何打包Cocos2d-JS的项目。


环境要求


环境搭建

  • 下载Cocos2d-JS v3.0-RC1

  • 解压下载的压缩包,终端进入cocos2d-js-v3.0-rc1目录,执行命令./setup.py

  • 执行source /Users/zeroyang/.bash_profile命令,加入环境变量。

操作步骤如图:

Cocos2d-JS打包, cocos2dx-3.0


打包

我们先来创建一个Cocos2d-JS的CocosJSGame工程。然后对CocosJSGame进行打包。

1
2
3
4
5
6
7
8
9
10
IvenYangtekiMacBook-Pro-2:cocos2d-js-v3.0-alpha2 zeroyang$ cocos  new  CocosJSGame -l js
Runing command:  new
> Copy  template  into /Users/zeroyang/Documents/work/cocos2d-js-v3.0-alpha2/CocosJSGame
> Copying cocos2d-html5 files...
> Copying files from  template  directory...
> Copying directory from cocos root directory...
> Copying cocos2d-x files...
> Rename project name from  'HelloJavascript'  to  'CocosJSGame'
> Replace the project name from  'HelloJavascript'  to  'CocosJSGame'
> Replace the project package name from  'org.cocos2dx.hellojavascript'  to  'org.cocos2dx.hellojavascript'

上面的操作创建了一个基于cocos2d-js-v3.0-alpha2的CocosJSGame工程。下面我们来学习如何打包。


生成JSC(字节码)

Javascript作为一个解释型的语言,如果直接打包发布,别人可以轻松的拿到Javascript源码。幸好Cocos2d提供了cocos2d-console工具,通过该工具可以将js编译为字节码(jsc)。

cocos jscompile命令,将js文件编译为js格式。


例如:

1
cocos jscompile -s /Users/zeroyang/Documents/work/cocos2d-js-v3.0-alpha2/CocosJSGame/src -d ./

参数:

-s:指定js文件夹src -d:指定生成jsc格式文件存放的目标文件夹

执行上面操作将CocosJSGame/src下的js文件编译为字节码(jsc)。 

Cocos2d-JS打包, cocos2dx-3.0

Web打包

通过cocos compile命令可以进行Web的打包,将打包好的内容部署到服务器通过Web方式发布!


例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
cocos compile -p web -m release
Runing command: compile
Building mode: release
running:  '/Users/zeroyang/Documents/apache-ant-1.9.3/bin/ant -f /Users/zeroyang/Documents/cocos/CocosJSGame/publish/html5/build.xml'
  
Buildfile: /Users/zeroyang/Documents/cocos/CocosJSGame/publish/html5/build.xml
  
compile:
    [jscomp] Compiling 90 file(s) with 40  extern (s)
    [jscomp] 0 error(s), 0 warning(s)
  
BUILD SUCCESSFUL
Total  time : 10 seconds


打包生成发布文件位置: 

Cocos2d-JS打包, cocos2dx-3.0

JSB模式打包

jsb 模式是通过打包spidermonkey来运行js代码。 我们可以打包到(Android, iOS, Mac, Web, Win32, Linux)。


通过cocos compile命令可以进行jsb模式的打包。 终端执行cocos compile -h查看cocos编译命令的帮助。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
IvenYangtekiMacBook-Pro-2:CocosJSGame zeroyang$ cocos compile -h
usage: cocos compile [-h] [-s SRC_DIR] [-q] [-p PLATFORM] [-m MODE] [-j JOBS]
                      [--ap ANDROID_PLATFORM] [--source-map] [--no-res]
  
Compiles the current project to binary
  
optional arguments:
   -h, --help            show  this  help message and  exit
   -s SRC_DIR, --src SRC_DIR
                         project base directory
   -q, --quiet           less output
   -p PLATFORM, --platform PLATFORM
                         select a platform (android, ios, mac, web, win32,
                         linux)
   -m MODE, --mode MODE  Set the compile mode, should be debug|release,  default
                         is debug.
   -j JOBS, --jobs JOBS  Allow N jobs at once.
  
Android Options:
   --ap ANDROID_PLATFORM
                         parameter  for  android-update.Without the parameter,the
                         script just build dynamic library  for  project. Valid
                         android-platform are:[10|11|12|13|14|15|16|17|18|19]
  
Web Options:
   --source-map          Enable source-map
  
lua/js project arguments:
   --no-res              Package without project resources.

常用打包命令如下:

1
cocos compile -p android -m debug

参数:

-p : 指定打包平台(Android, iOS, Mac, Web, Win32,Linux)

-m : 可选参数,指定打包模式 debug|release(默认debug)


Android

在终端cd进入工程目录,执行如下命令,进行Android的发布版本打包。

1
cocos compile -p android -m release


  • 执行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
IvenYangtekiMacBook-Pro-2:CocosJSGame zeroyang$ cocos compile -p android -m release
Runing command: compile
Building mode: release
building native
The Selected NDK toolchain version was 4.8 !
....
....
-release-sign:
-post-build:
release:
BUILD SUCCESSFUL
Total  time : 8 seconds
Move apk to /Users/zeroyang/Documents/cocos/CocosJSGame/publish/android
Please input the absolute/relative path of  ".keystore"  file:


  • 打包生成文件位置:

Cocos2d-JS打包, cocos2dx-3.0

  • 支持android x86打包


如果要支持android x86打包,需修改CocosJSGame/frameworks/runtime-src/proj.android/jni/Application.mk文件,加入APP_ABI定义,告诉NDK这个APK支持多少芯片架构。 如下声明表明可以在arm或x86架构的设备上安装。

1
APP_ABI := armeabi x86


编译时将会编译生成arm和x86的指令集,并最终打包到一个apk!


iOS

在终端cd进入工程目录,执行如下命令,进行iOS的发布版本打包。

1
cocos compile -p ios -m release


  • 执行结果:

1
2
3
4
5
6
7
8
9
IvenYangtekiMacBook-Pro-2:CocosJSGame zeroyang$ cocos compile -p ios -m release
Runing command: compile
Building mode: release
building
running:  'xcodebuild -project "/Users/zeroyang/Documents/cocos/CocosJSGame/frameworks/runtime-src/proj.ios_mac/CocosJSGame.xcodeproj" -configuration Release -target "CocosJSGame iOS" -sdk iphonesimulator -arch i386 CONFIGURATION_BUILD_DIR=/Users/zeroyang/Documents/cocos/CocosJSGame/publish/ios'
...
...
** BUILD SUCCEEDED **
build succeeded.


  • 打包生成文件位置: 

Cocos2d-JS打包, cocos2dx-3.0

注意: iOS暂不支持打包成ipa。


其他打包方式

Cocos2d-JS工程下的各平台项目文件:

Cocos2d-JS打包, cocos2dx-3.0

我们可以使用各自平台支持的IDE打开项目进行打包。


使用Cocos Code IDE 进行打包

详见Cocos Code IDE入门指南