步骤三:构建并归档软件包
编译构建为开发者提供配置简单的混合语言构建平台,支持任务一键创建、配置和执行,实现获取代码、构建、打包等活动自动化。发布提供软件仓库、软件发布、发布包下载、发布包元数据管理等功能,实现软件包版本管理。通过编译构建任务中配置的归档路径,可将构建好的软件包归档在发布仓库中。
本节通过以下三步介绍如何使用编译构建服务将代码编译打包成软件包,并将软件包归档到软件发布库中。
此外,本示例还将介绍以下两种构建场景:
第一步:创建编译构建任务
DevCloud中内置了多种编译构建模板,本示例选择使用模板“Android APK”。
- 单击页面上方导航栏 。
- 单击“新建任务”,配置编译构建任务信息。
步骤
填写/选择建议
基本信息
- 任务名称:v2ex-daily-CI。
- 构建环境主机类型:x86服务器。
选择代码源
- 源码源:DevCloud。
- 源码仓库:选择在步骤二:管理项目代码中创建的代码仓库“v2ex-daily”。
- 分支:master。
选择构建模板
选择DevCloud内置的构建模板“Android APK”。
- 完成配置,单击“确定”,页面自动跳转至构建步骤页面。
- 单击“参数设置”页签,添加参数“buildVersion”,用于版本管理。
- 单击“构建步骤”页签,编辑编译构建步骤。
- Android构建:选择Gradle版本,并编辑构建命令。
Gradle版本的选择需要参考配置文件build.gradle中所配置的Gradle Plugin版本,配置文件build.gradle存储在代码仓库中,本示例中的配置文件如下图所示。
Gradle Plugin版本与Gradle版本的对应关系如下:
Plugin version
Required Gradle version
1.0.0 - 1.1.3
2.2.1 - 2.3
1.2.0 - 1.3.1
2.2.1 - 2.9
1.5.0
2.2.1 - 2.13
2.0.0 - 2.1.2
2.10 - 2.13
2.1.3 - 2.2.3
2.14.1+
2.3.0+
3.3+
3.0.0+
4.1+
本示例中的Gradle版本选择4.5,输入以下构建命令:
gradle build
- 上传软件包到软件发布库:输入发布版本号“${buildVersion}”。
- Android构建:选择Gradle版本,并编辑构建命令。
- 单击“新建”,完成编译构建任务的创建。页面自动跳转至任务详情页。
第二步:执行编译构建任务
在编译构建任务详情页,单击“执行”,在弹框中输入版本号(例如“1.0”),启动构建任务。
任务执行耗时约1分钟,当出现如下页面时,表示任务执行成功完成。
若执行失败,请查看日志信息排查问题,或通过编译构建-常见问题查找解决方法。
第三步:检查发布件
编译构建任务默认将软件包归档在软件发布库中,归档路径通常分为两层:
- 路径第一层为与编译构建任务同名的文件夹。
- 路径第二层为与第二步:执行编译构建任务中设置的发布版本号同名的文件夹。
- 单击页面上方导航栏 ,进入软件发布库。
- 单击文件夹“v2ex-daily-CI”,根据第二步:执行编译构建任务中输入的版本号,单击同名文件夹进入,即可看到生成的软件包“app-debug.apk”。
多环境构建
在平时的Android开发中,经常会遇到在不同网络环境(比如:开发环境、测试环境)之间的切换等需求。如果每一次在不同网络环境间切换,都需要更改代码、重新打包,会消耗过多人力及时间。
下面提供一种常用的多环境打包的方法。
- 在代码仓库中找到文件夹“app”,在其中的build.gradle文件中的Android代码段中添加以下代码。
//多版本 buildTypes { debug { //是否输出日志 buildConfigField 'boolean', 'IS_DEBUG', 'true' } release { buildConfigField 'boolean', 'IS_DEBUG', 'false' } } //多环境 productFlavors { //开发环境 develop { applicationId 'com.yugy.v2ex.daily.dev' buildConfigField "String", "APPURL", "\"http://v2exdaily/develop/api/\"" } //测试环境 Test { applicationId 'com.yugy.v2ex.daily.test' buildConfigField "String", "APPURL", "\"http://v2exdaily/test/api/\"" } //生产环境 product { applicationId 'com.yugy.v2ex.daily.product' buildConfigField "String", "APPURL", "\"http://v2exdaily/product/api/\"" } }
- 执行构建任务,成功执行后,在软件发布库可看到如下APK。
签名包构建
Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中。前面步骤中生成的构建包都没有签名,下面介绍如何构建签名包。
在构建前,首先要准备好一个签名文件(xxx.jks),签名文件的编写本示例不详细介绍,请参考相关的专业操作指南。
- 进入在步骤二:管理项目代码中创建的代码仓库,单击
,在下拉列表中选择“上传文件”,将准备好的签名文件上传到代码仓库中。
- 在文件“app/build.gradle”的Android代码段中添加以下代码。其中,“keyPassword”与“storePassword”来源于签名文件。
//签名文件 signingConfigs { release { keyAlias 'key0' keyPassword 'xxxxxx' storeFile file('../keystore.jks') storePassword 'xxxxxx' } }
并在下图所示位置添加以下代码:
//是否签名 signingConfig signingConfigs.release
- 执行构建任务,成功执行后,在软件发布库可看到所有release包均已签名。
