jenkins+gradle打包android遇到的坑

1.gradle与gradlew的选择

  配置project,我们选择gradle进行打包。会看到如下图配置项。然而很多网上教程中给出的选择是第一项。只能这么说,如果你是新建一个androidDemo,这样设置完全没问题。

但是一个真实的项目,这样恐怕就要出问题。也许见识的比较少,不知道猜测对不对,团队合作,每个人的环境不一致,可能导致Build失败,于是使用的项目使用的是gradle wrapper。如果我们这里配置invoke gradle,就会报错。(报什么错呢,等我去修改下配置,给图给各位看,已经截图了)

  当初看到这个错,搞了很久,怎么都不行,后来反复看了一位前辈的文章(找不到出处了),觉得有可能是因为选错了,于是尝试使用 use gradle wrapper。可以自行下载相应的包,也可以自动下载,需要的版本在android项目文件中应该有写,不知道的话请联系项目研发,如果是你自己写的项目,找不到,那我也无话可说了。

  配置完,点击构建,解决,Build成功。

2.打包成功,但是打出来的release包标记了unsigned.

  嘛意思呢,就是没有签名。没有签名意味着,无法安装,无法发布。于是找研发问了,签名如何实现的。研发也是很热心,过来点点点,输入密码各种key,然后打包完了。

  然并卵,我总不可能让Jenkins也点点点啊。。。于是研究如何代码中如何实现的签名的,android studio是如何实现签名的。无数次的麻烦研发,看代码之后,终于发现android studio与jenkins想要实现上完全不一样。android studio打包会去选择签名文件以及输入各种信息,然而我们jenkins想要自动化打包,则必须将所需信息写在配置文件里面。下面是代码截图

  buildTypes中的sigingConfig signingConfigs.signingConfig   就是调用上面的配置文件。作为测试搞不定这个代码,就找研发吧。(就算搞定,没有权限提交,也请找研发)

配置完成之后再构建打包,应该就能解决签名不成功的问题了(自己找到的解决办法,找研发改的代码之后解决了问题,作为一名测试,还是很有成就感)

3.打完包去哪儿了呢?

  好吧,这个问题其实是自己对jenkins不熟悉造成的。如果是androidstudio打包,会到项目主目录下,但是如果是jenkins就不是了。会在project输出目录中去…/outputs中,或者如果代码中指定了输出目录,就是指定输出目录,为了减少自己的麻烦,我都是默认。

原文地址:https://www.cnblogs.com/zoulifeng2017/p/7874173.html