手把手OkBuck教程:应用到AndroidTDDBootStrap项目(续)
来自: http://blog.piasy.com/AndroidTDDBootStrap-Use-OkBuck-2/
5个多月过去了, OkBuck 和 AndroidTDDBootStrap 项目都发生了重大更新,原文中的描述已经过时已久,今天趁着AndroidTDDBootStrap完成重构,更新AndroidTDDBootStrap的OkBuck配置过程,继续体验其畅快淋漓!
第一步,应用插件
按照OkBuck文档的步骤,根据本工程的结构,在 /build.gradle 中加入配置,配置后 /build.gradle 是这样的:
尝试运行 ./gradlew okbuck ,哎哟,报错了:
第二步,配置multidex
根据报错信息,看来是因为我使用了multidex,这块高级设置需要额外配置,而根据 OkBuck wiki描述 的描述,linearAllocHardLimit可以直接设置为一个很大的值(或者从小值开始试,BUCK build命令失败提示多少就设置为多少),而primaryDexPatterns通常从App类开始,逐渐尝试,运行之后提示找不到类再加到列表中,初始设置如下:
然后再运行 ./gradlew okbuck ,成功啦!
第三步,配置git ignore
这时候打开source tree一看,repo 有3000+改动,有点吓人啊,不过大都是buck和OkBuck搞的鬼,buck和OkBuck的相关目录( /buck-out , /.buckd , /.okbuck )都是程序生成的,还是不要被git管理为好,不然每次运行都会有大量改动,严重影响code review,所以在 /.gitignore 中加入以下几行:
注意 /.buckconfig 以及各个module根目录下的BUCK文件我就没有ignore了,如果你想ignore也可以加到 /.gitignore 中。另外就是AndroidTDDBootStrap项目的签名文件本来就是公开的,所以也就没有必要ignore了,不过由于OkBuck默认是把生成的签名文件放到 /.okbuck 目录下,所以其实已经ignore了。
此时尝试运行 buck install -r appProductRelease ,直接成功!
fabric问题
成功打包安装后,运行app,发现app卡在了Splashing页,查看log:
log看起来是fabric找不到key,所以注册失败了,看来新发现了一个OkBuck的坑呀,提issue去咯!至于这个问题怎么解决?先禁用呀!打发布包的时候,用gradle再恢复,等OkBuck解决这个问题后再彻底恢复。
小结
由于代码不兼容的地方早前就进行了修改,这次换用新版本的OkBuck之后,集成时间只花了半小时,这还包括写这篇博客的时间哟!OkBuck还是挺赞的 :)