公司用 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    gradle product flavor 
                 | 
            
     4 
                    
                    leonlh   OP @shaobin0604 多个包的 C++代码是不一样的,单纯的 gradle 只能解决 Android 端出包问题。 
                 | 
            
     5 
                    
                    youxiachai      2016-01-14 18:02:11 +08:00    高配构建机。。专治各种打包时间。。 
                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    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     | 
            
     12 
                    
                    leonlh   OP @cppgohan 嗯嗯,所以只需要 1 个 gradle 文件, 1 个 Android 工程,就能解决渠道编译不同代码的了。 
                同样的, Gradle 应该只能管理 java 端代码编译的问题...C++端还是捉急啊...  | 
            
     13 
                    
                    phttc      2016-01-15 12:17:32 +08:00    用 plugin 啊,每个渠道 SDK 作为一个插件,分配 SDK_ID ,然后写配置文件,读取就好了。 
                 | 
            
     18 
                    
                    r00tt      2016-01-18 10:27:48 +08:00    我们当时也遇到过这个问题,后来做了个方案,可以参见 https://www.leepood.com/thought/2015/11/07/all-sdk-package-for-cocos2dx.html 不过最终没维护下去了~~ 
                 | 
            
     25 
                    
                    zhangneww      2016-03-18 23:42:14 +08:00     | 
            
     27 
                    
                    zhangneww      2016-03-26 10:55:56 +08:00 
                    
                    @leonlh 我又发现了一个, http://kuchuan.com/ 
                 |