V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leonlh
V2EX  ›  Android

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

  •  1
     
  •   leonlh · 2016-01-14 16:08:18 +08:00 · 10541 次点击
    这是一个创建于 3255 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司用 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 条附言  ·  2016-01-19 11:39:52 +08:00
    ---
    感觉目前没有特别好的方案啊。。
    28 条回复    2016-03-28 11:16:45 +08:00
    leonlh
        1
    leonlh  
    OP
       2016-01-14 17:25:13 +08:00
    木有人理啊。。
    leonlh
        2
    leonlh  
    OP
       2016-01-14 17:36:57 +08:00
    感觉发到技术节点会好点。。
    shaobin0604
        3
    shaobin0604  
       2016-01-14 17:43:45 +08:00   ❤️ 1
    gradle product flavor
    leonlh
        4
    leonlh  
    OP
       2016-01-14 17:53:13 +08:00
    @shaobin0604 多个包的 C++代码是不一样的,单纯的 gradle 只能解决 Android 端出包问题。
    youxiachai
        5
    youxiachai  
       2016-01-14 18:02:11 +08:00   ❤️ 1
    高配构建机。。专治各种打包时间。。

    i7 ssd 32G 只是我司目前构建机配置。。
    leonlh
        6
    leonlh  
    OP
       2016-01-14 18:05:09 +08:00
    @youxiachai 我也是搞了台 E3 服务器放屋里,专门构建用的。。
    wanttofly
        7
    wanttofly  
       2016-01-15 09:40:18 +08:00
    3 楼可以解决不同的 Android 端出包问题,那能不能根据渠道来加载不同的代码呢
    leonlh
        8
    leonlh  
    OP
       2016-01-15 10:42:27 +08:00
    @wanttofly 对,我也想问这个 :)
    iv2ex
        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 编译多渠道的思路是否可以满足。

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

    同样的, Gradle 应该只能管理 java 端代码编译的问题...C++端还是捉急啊...
    phttc
        13
    phttc  
       2016-01-15 12:17:32 +08:00   ❤️ 1
    用 plugin 啊,每个渠道 SDK 作为一个插件,分配 SDK_ID ,然后写配置文件,读取就好了。
    leonlh
        14
    leonlh  
    OP
       2016-01-15 19:23:12 +08:00
    @phttc 不好意思,没太理解您的意思 ,是 AndroidStudio 的 plugin 吗?
    leonlh
        15
    leonlh  
    OP
       2016-01-15 19:23:20 +08:00
    @phttc 可以具体点嘛?
    phttc
        16
    phttc  
       2016-01-17 12:15:19 +08:00
    @leonlh 度娘一下关键字 cocos2dx plugin
    r00tt
        17
    r00tt  
       2016-01-18 10:26:41 +08:00
    @laoyur 可以来回答下~
    r00tt
        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 不过最终没维护下去了~~
    leonlh
        19
    leonlh  
    OP
       2016-01-18 11:21:51 +08:00
    @r00tt 好的,我看下,感谢~
    leonlh
        20
    leonlh  
    OP
       2016-01-18 11:33:18 +08:00
    @r00tt 链接好像打不开- -
    leonlh
        21
    leonlh  
    OP
       2016-01-18 11:36:36 +08:00
    @r00tt 翻墙打开了。。
    leonlh
        22
    leonlh  
    OP
       2016-01-19 11:26:29 +08:00
    @r00tt 为啥最终不维护了呢?有什么使用上的不便吗?
    r00tt
        23
    r00tt  
       2016-01-19 11:57:18 +08:00
    @leonlh 因为离职了~~~ 你觉得这个可行么
    leonlh
        24
    leonlh  
    OP
       2016-01-19 18:25:36 +08:00
    @r00tt 感觉相当可以啊,感谢~~
    zhangneww
        25
    zhangneww  
       2016-03-18 23:42:14 +08:00   ❤️ 1
    leonlh
        26
    leonlh  
    OP
       2016-03-21 12:08:55 +08:00
    @zhangneww 好像不大一样,不过思路很好,我研究下,谢谢!
    zhangneww
        27
    zhangneww  
       2016-03-26 10:55:56 +08:00
    @leonlh 我又发现了一个, http://kuchuan.com/
    leonlh
        28
    leonlh  
    OP
       2016-03-28 11:16:45 +08:00
    @zhangneww 好的,我研究下~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.