你们是如何方便快捷的进行 Android 游戏多渠道打包的?

2016-01-14 16:08:18 +08:00
 leonlh

公司用 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 ,搭一套打包系统,来方便打包和维护。。

简直纠结死了,不知道你们是如何处理的呢?

6688 次点击
所在节点    Android
28 条回复
leonlh
2016-01-14 17:25:13 +08:00
木有人理啊。。
leonlh
2016-01-14 17:36:57 +08:00
感觉发到技术节点会好点。。
shaobin0604
2016-01-14 17:43:45 +08:00
gradle product flavor
leonlh
2016-01-14 17:53:13 +08:00
@shaobin0604 多个包的 C++代码是不一样的,单纯的 gradle 只能解决 Android 端出包问题。
youxiachai
2016-01-14 18:02:11 +08:00
高配构建机。。专治各种打包时间。。

i7 ssd 32G 只是我司目前构建机配置。。
leonlh
2016-01-14 18:05:09 +08:00
@youxiachai 我也是搞了台 E3 服务器放屋里,专门构建用的。。
wanttofly
2016-01-15 09:40:18 +08:00
3 楼可以解决不同的 Android 端出包问题,那能不能根据渠道来加载不同的代码呢
leonlh
2016-01-15 10:42:27 +08:00
@wanttofly 对,我也想问这个 :)
iv2ex
2016-01-15 10:53:45 +08:00
http://jackyche.github.io/blog/2012/07/22/android-preprocess-and-multi-channel-release/

看看 ant 编译多渠道的思路是否可以满足。

这样一份代码里可以根据判断条件写不同的代码,编译期间根据条件生成最终代码。
理论上可以满足你根据渠道编译不同代码的需求。
cppgohan
2016-01-15 10:55:20 +08:00
@wanttofly @leonlh flavors 可以有自己的 java 代码 /res/jni 代码 /jnilibs
leonlh
2016-01-15 11:56:57 +08:00
@atearsan 多谢,我去学习一下~
leonlh
2016-01-15 12:01:14 +08:00
@cppgohan 嗯嗯,所以只需要 1 个 gradle 文件, 1 个 Android 工程,就能解决渠道编译不同代码的了。

同样的, Gradle 应该只能管理 java 端代码编译的问题...C++端还是捉急啊...
phttc
2016-01-15 12:17:32 +08:00
用 plugin 啊,每个渠道 SDK 作为一个插件,分配 SDK_ID ,然后写配置文件,读取就好了。
leonlh
2016-01-15 19:23:12 +08:00
@phttc 不好意思,没太理解您的意思 ,是 AndroidStudio 的 plugin 吗?
leonlh
2016-01-15 19:23:20 +08:00
@phttc 可以具体点嘛?
phttc
2016-01-17 12:15:19 +08:00
@leonlh 度娘一下关键字 cocos2dx plugin
r00tt
2016-01-18 10:26:41 +08:00
@laoyur 可以来回答下~
r00tt
2016-01-18 10:27:48 +08:00
我们当时也遇到过这个问题,后来做了个方案,可以参见 https://www.leepood.com/thought/2015/11/07/all-sdk-package-for-cocos2dx.html 不过最终没维护下去了~~
leonlh
2016-01-18 11:21:51 +08:00
@r00tt 好的,我看下,感谢~
leonlh
2016-01-18 11:33:18 +08:00
@r00tt 链接好像打不开- -

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/250744

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX