侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 290 篇文章
  • 累计创建 57 个标签
  • 累计收到 98 条评论

Jenkins 配置-支持打包不同的渠道包app-超简单

Z同学
2022-01-17 / 0 评论 / 1 点赞 / 572 阅读 / 1,607 字
温馨提示:
本文最后更新于 2022-01-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

我们采用最简单的配置方式,实现了app的编译打包。

可以参考:JenKins 实战-首次从Git上获取代码并编译打包Android apk (zinyan.com)

我们如果有不同的渠道包时,该如何配置呢?

本篇主要用来介绍如何通过JenKins,让测试人员打包时。可以自己选择不同的渠道包。

方法很简单,适合刚接触jenKins配置的小伙伴。

1. 配置不同渠道包

需要JenKins支持不同渠道包,那么我们首先需要在android项目的build.gradle中配置好不同的渠道。

示例:我们创建了多个不同的渠道。

productFlavors{
   qudao1{
   }
   qudao2{
   }
   qudao3{
   
   }
}

我们首先自己能够通过AndroidStudio 进行打包不同的渠道包。然后将build.gradle 上传到git仓库。

这样jenkins通过git拉取代码和配置的时候就能自动拉取到了。(我的示例中,不用配置app签名,就是因为我的签名也在整个项目代码中了。)

渠道包配置成功后,我们可以通过右侧的Grdle面板上看到

image-20220117173237244

在assemble 后面有不同的渠道包的构造。

其实jenkins 也是通过调用该脚本进行gradle编译app的。

2.配置Jenkins

我们只需要在General面板中,添加一个ChoiceParameter (菜单选项)

2.1 添加ChoiceParameter 菜单选择

示例:

image-20220117173443462

我们创建一个名称叫:PRODUCT_FLAVORS 的变量。

然后他的变量类型为ChoiceParameter

下面的描述,我们可以随意进行发挥填写,你可以介绍上面的选项。

2.2 使用Parameter选择值

我们上面配置的菜单项,当我们进行构造编译时,Jenkins会弹出界面,让我们选择上面配置的PRODUCT_FLAVORS的值。然后将我们配置的选项值赋值给PRODUCT_FLAVORS对象。

例如我们如果选择qudao1 那么结果就是:PRODUCT_FLAVORS=qudao1

我们之后就可以在jenkins上使用这个变量了。

在构建模块中的脚本上使用:

app:clean app:assemble${PRODUCT_FLAVORS}

效果图如下:

image-20220117173910273

这样当我们使用Jenkins 构造app的时候, 就可以动态的选择构造不同的渠道包了。

我们如果是有注意到AS上的Gradle 会发现assemble后面的渠道首字母是大写的。而我们在上面配置choiceParameter是小写的,会不会出现找不到呢?--放心,不会找不到,亲测。

最后,我们需要配置默认的app存储文件。也一样使用PRODUCT_FLAVORS

因为build/outputs/apk/xxxx(这个地方就是渠道名)/release/*.apk

示例:app/build/outputs/apk/${PRODUCT_FLAVORS}/release/*.apk

效果图:

image-20220117174328938

我们配置完毕后。在构造项目的时候。

都会出现下面的界面:

image-20220117174636122

让我们选择配置的PRODUCT_FLAVORS 。我们只有选择完毕后,才能够进行构造。

3.查询构造结果

我们如果给JenKins 添加了Parameters配置项之后。

每一次构造打包编译成功后,我们都可以通过 Parameters菜单,看到当初构造的时候选择的配置。

image-20220117174900691

4. 其他

我上面的示例中,直接会打包debug 和release 两个apk。如果不想打包两个出来的话。我们需要在脚本中添加release或Debug就可以了。

app:clean app:assemble${PRODUCT_FLAVORS}Debug //只打包debug

app:clean app:assemble${PRODUCT_FLAVORS}Release //只打包Release 版本

我们在Parameter的基础上,可以实现更多的效果。例如直接修改build.gradle里面的参数值。

看我之后的文章介绍吧。

本篇内容就到这里

1

评论区