公司用 Cocos2d-x C++开发了一款游戏,需要楼主接很多个渠道 SDK ,运营商 SDK ,支付 SDK...
针对不同的渠道,要填充不同的代码,来保证账号系统,支付系统在不同平台的兼容性,甚至游戏名字各个渠道都有可能不一样。
由于是 C++,每次打包的时候,都要改成 release 配置,改个头文件牵动全局,编译就要编译 10 分钟(楼主渣 12 年 mbp )。。。
楼主是用 git 管理代码,每个渠道一个分支,但是如果游戏本身代码要更新的话,不得不重新拉分支,重新接 SDK 等
楼主有参考过别人的代码,发现大家都是每个渠道一个 android 工程,类似这样:
proj.android
proj.android.91
proj.android.wdj
所以楼主准备在本地服务器上搭一套, jenkins + git + gradle ,搭一套打包系统,来方便打包和维护。。
简直纠结死了,不知道你们是如何处理的呢?
1
leonlh OP 木有人理啊。。
|
2
leonlh OP 感觉发到技术节点会好点。。
|
3
shaobin0604 2016-01-14 17:43:45 +08:00 1
gradle product flavor
|
4
leonlh OP @shaobin0604 多个包的 C++代码是不一样的,单纯的 gradle 只能解决 Android 端出包问题。
|
5
youxiachai 2016-01-14 18:02:11 +08:00 1
高配构建机。。专治各种打包时间。。
i7 ssd 32G 只是我司目前构建机配置。。 |
6
leonlh OP @youxiachai 我也是搞了台 E3 服务器放屋里,专门构建用的。。
|
7
wanttofly 2016-01-15 09:40:18 +08:00
3 楼可以解决不同的 Android 端出包问题,那能不能根据渠道来加载不同的代码呢
|
9
iv2ex 2016-01-15 10:53:45 +08:00 1
http://jackyche.github.io/blog/2012/07/22/android-preprocess-and-multi-channel-release/
看看 ant 编译多渠道的思路是否可以满足。 这样一份代码里可以根据判断条件写不同的代码,编译期间根据条件生成最终代码。 理论上可以满足你根据渠道编译不同代码的需求。 |
10
cppgohan 2016-01-15 10:55:20 +08:00 1
|
12
leonlh OP @cppgohan 嗯嗯,所以只需要 1 个 gradle 文件, 1 个 Android 工程,就能解决渠道编译不同代码的了。
同样的, Gradle 应该只能管理 java 端代码编译的问题...C++端还是捉急啊... |
13
phttc 2016-01-15 12:17:32 +08:00 1
用 plugin 啊,每个渠道 SDK 作为一个插件,分配 SDK_ID ,然后写配置文件,读取就好了。
|
18
r00tt 2016-01-18 10:27:48 +08:00 1
我们当时也遇到过这个问题,后来做了个方案,可以参见 https://www.leepood.com/thought/2015/11/07/all-sdk-package-for-cocos2dx.html 不过最终没维护下去了~~
|
25
zhangneww 2016-03-18 23:42:14 +08:00 1
|
27
zhangneww 2016-03-26 10:55:56 +08:00
@leonlh 我又发现了一个, http://kuchuan.com/
|