Skip to content

Commit ab88939

Browse files
author
许治坤
committed
android编译环境换到mac系统,因为cocos在使用release模式编译的时候,自动把js脚本编译成jsc,而jsbcc只支持mac和win32平台。
1 parent 801e121 commit ab88939

File tree

1 file changed

+141
-0
lines changed

1 file changed

+141
-0
lines changed

build-apk.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
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

Comments
 (0)