|
| 1 | +## cocos2d-js android平台安装包编译打包 |
| 2 | + |
| 3 | +------ |
| 4 | + |
| 5 | +### 1. 环境配置 |
| 6 | + |
| 7 | +cocos2d-js 3.0 rc0的changelog提到cocos在使用release模式编译的时候,自动把js脚本编译成jsc,但是看`cocos2d-js-v3.0-rc0/tools/cocos2d-console/plugins/plugin_jscompile/bin/`下的jsbcc只支持mac和win32平台,所以把原来linux下编译环境换到mac平台。 |
| 8 | + |
| 9 | +MacBook Air的机器,操作系统版本是OS X 10.9.3,Xcode版本是5.1.1,java开发环境已经装好。下载如下必要的开发包: |
| 10 | + |
| 11 | +- [cocos2d-js-v3.0-rc0.zip](http://www.cocos2d-x.org/download) |
| 12 | +- [android-ndk-r9d-darwin-x86.tar.bz2](https://developer.android.com/tools/sdk/ndk/index.html) |
| 13 | +- [adt-bundle-mac-x86_64-20140624.zip](https://developer.android.com/sdk/index.html) |
| 14 | +- [apache-ant-1.9.4-bin.tar.bz2](http://ant.apache.org/bindownload.cgi) |
| 15 | + |
| 16 | +有新的可以下载更新的版本。 |
| 17 | + |
| 18 | +配置cocos2d-js: |
| 19 | + |
| 20 | +```bash |
| 21 | +xtekiMacBook-Air:cocos2d-js-v3.0-rc0 x$ ./setup.py |
| 22 | + |
| 23 | +Setting up cocos2d-x... |
| 24 | +->Check environment variable COCOS_CONSOLE_ROOT |
| 25 | + ->Find environment variable COCOS_CONSOLE_ROOT... |
| 26 | + ->COCOS_CONSOLE_ROOT is found : /Users/x/cocos2d/cocos2d-js-v3.0-rc0/tools/cocos2d-console/bin |
| 27 | + |
| 28 | +->Configuration for Android platform only, you can also skip and manually edit "/Users/x/.bash_profile" |
| 29 | + |
| 30 | +->Check environment variable NDK_ROOT |
| 31 | + ->Find environment variable NDK_ROOT... |
| 32 | + ->NDK_ROOT is found : /Users/x/cocos2d/android-ndk-r9d |
| 33 | + |
| 34 | +->Check environment variable ANDROID_SDK_ROOT |
| 35 | + ->Find environment variable ANDROID_SDK_ROOT... |
| 36 | + ->ANDROID_SDK_ROOT is found : /Users/x/cocos2d/adt-bundle-mac-x86_64-20140624/sdk |
| 37 | + |
| 38 | +->Check environment variable ANT_ROOT |
| 39 | + ->Find environment variable ANT_ROOT... |
| 40 | + ->ANT_ROOT is found : /Users/x/cocos2d/apache-ant-1.9.4/bin |
| 41 | + |
| 42 | + |
| 43 | +Please execute command: "source /Users/x/.bash_profile" to make added system variables take effect |
| 44 | + |
| 45 | +xtekiMacBook-Air:cocos2d-js-v3.0-rc0 x$ source ~/.bash_profile |
| 46 | +``` |
| 47 | + |
| 48 | +进入android sdk的目录下载更新android平台和第三方库文件: |
| 49 | + |
| 50 | +```bash |
| 51 | +xtekiMacBook-Air:cocos2d-js-v3.0-rc0 x$ cd ~/cocos2d/adt-bundle-mac-x86_64-20140624/sdk/ |
| 52 | +xtekiMacBook-Air:sdk x$ tools/android |
| 53 | +``` |
| 54 | + |
| 55 | +这时会弹出`Android SDK Manager`的窗口,勾选`Android 2.3.3(API 10)`,然后安装。安装完后,在sdk的platforms下出现一个`android-10`的目录。 |
| 56 | + |
| 57 | +### 2. 编译测试 |
| 58 | + |
| 59 | +生成一个测试项目: |
| 60 | + |
| 61 | +```bash |
| 62 | +xtekiMacBook-Air:cocos2d-js-v3.0-rc0 x$ cocos new MyGame -l js -d ~/project/ |
| 63 | +``` |
| 64 | + |
| 65 | +修改`frameworks/runtime-src/proj.android/AndroidManifest.xml`可以设置游戏启动是横屏还是竖屏,默认是`landscape`: |
| 66 | + |
| 67 | +``` |
| 68 | +android:screenOrientation="portrait" |
| 69 | +``` |
| 70 | + |
| 71 | +编译这个测试项目: |
| 72 | + |
| 73 | +```bash |
| 74 | +xtekiMacBook-Air:cocos2d-js-v3.0-rc0 x$ cd ~/project/MyGame/ |
| 75 | +xtekiMacBook-Air:MyGame x$ cocos compile -p android |
| 76 | +Runing command: compile |
| 77 | +Building mode: debug |
| 78 | +building native |
| 79 | +NDK build mode: debug |
| 80 | +The Selected NDK toolchain version was 4.8 ! |
| 81 | +... |
| 82 | +debug: |
| 83 | + |
| 84 | +BUILD SUCCESSFUL |
| 85 | +Total time: 14 seconds |
| 86 | +Move apk to /Users/x/project/MyGame/runtime/android |
| 87 | +build succeeded. |
| 88 | +xtekiMacBook-Air:MyGame x$ ls -l /Users/x/project/MyGame/runtime/android |
| 89 | +total 15416 |
| 90 | +-rw-r--r-- 1 x staff 7889244 Jul 10 15:55 MyGame-debug.apk |
| 91 | +``` |
| 92 | + |
| 93 | +这样编译的是debug版本,方便测试调试。一般开发阶段,这样就可以了。 |
| 94 | + |
| 95 | +### 3. 发布release版本 |
| 96 | + |
| 97 | +如果要编译release版本,那么首先要创建keystore: |
| 98 | + |
| 99 | +```bash |
| 100 | +xtekiMacBook-Air:MyGame x$ keytool -genkey -alias demo.keystore -keyalg RSA -validity 3650 -keystore demo.keystore |
| 101 | +``` |
| 102 | + |
| 103 | +- 说明: |
| 104 | + - genkey 产生密钥 |
| 105 | + - -alias demo.keystore 别名 demo.keystore |
| 106 | + - -keyalg RSA 使用RSA算法对签名加密 |
| 107 | + - -validity 3650 有效期限10年 |
| 108 | + - -keystore demo.keystore |
| 109 | + |
| 110 | +会要求输入keystore的密码,以及组织名字等相关信息,填好后在当前目录生成keystore文件: |
| 111 | + |
| 112 | +```bash |
| 113 | +xtekiMacBook-Air:MyGame x$ ls -l demo.keystore |
| 114 | +-rw-r--r-- 1 x staff 1334 Jul 10 14:52 demo.keystore |
| 115 | +``` |
| 116 | + |
| 117 | +然后用如下命令编译发布: |
| 118 | + |
| 119 | +```bash |
| 120 | +xtekiMacBook-Air:MyGame x$ cocos compile -p android -m release |
| 121 | +``` |
| 122 | + |
| 123 | +编译中间可以看到js被转成jsc文件。编译完后,会提示你输入keystore文件: |
| 124 | + |
| 125 | +```bash |
| 126 | +BUILD SUCCESSFUL |
| 127 | +Total time: 12 seconds |
| 128 | +Move apk to /Users/x/project/MyGame/publish/android |
| 129 | +Please input the absolute/relative path of ".keystore" file: |
| 130 | +``` |
| 131 | + |
| 132 | +输入刚才生成的demo.keystore完整路径,比如这里是`/Users/x/project/MyGame/demo.keystore`,然后会提示输入这个keystore的密码,alias以及alias的密码,然后脚本会自动做签名,生成做了签名的apk文件: |
| 133 | + |
| 134 | +```bash |
| 135 | +xtekiMacBook-Air:MyGame x$ ls -l /Users/x/project/MyGame/publish/android |
| 136 | +total 24504 |
| 137 | +-rw-r--r-- 1 x staff 6271887 Jul 10 16:01 MyGame-release-signed.apk |
| 138 | +-rw-r--r-- 1 x staff 6268000 Jul 10 16:01 MyGame-release-unsigned.apk |
| 139 | +``` |
| 140 | + |
| 141 | +release模式编译的apk包比debug模式要小不少,解开apk包,查看assets目录下的js文件都编译成jsc文件,不用担心源码泄漏了。 |
0 commit comments