作者:格个蝎子_844 | 来源:互联网 | 2023-09-25 19:06
添加构建参数:选择参数化构建过程:image.pngimage.png源码管理配置:直接使用项目仓库ssh地址构建环境配置image.pngimage.pngbuildname是用
添加构建参数:
选择参数化构建过程:
image.png
image.png
源码管理配置:
直接使用项目仓库 ssh 地址
构建环境配置
image.png
image.png
build name 是用来在 Jenkins网站显示的。
构建配置
配置执行脚本:
作用是删除build下的目录,清理环境。
echo "============================= Clean android/app/build dir start ============================="
TARGET_FILE="$WORKSPACE/app/build/"
if [ -e "$TARGET_FILE" ]; then
echo "/app/build/ exists."
rm -rf $TARGET_FILE
else
echo "/app/build/ does not exists."
fi
echo "============================= Clean android/app/build dir end ============================="
image.png
采用 gradle 脚本编译,导入参数 API_MODE
编译后配置:
image.png
上传代码apk 文件到蒲公英。显示蒲公英二维码。
在android项目 build.gradle 文件中中需要配置, 接收 API_MODE 参数和默认的值。
代码如下:
定义api环境枚举, ApiEnvEnum
enum ApiEnvEnum {
DEV(1), PRE_RELEASE(2), ONLINE(3)
ApiEnvEnum(int value) {
this.value = value
}
private final int value
int getValue() {
value
}
}
/**
* 直接运行的编译环境在这里改动。 也可以在 gradle 编译的时候加参数 -PAPI_MODE={value}
* {value} 可以是 DEV, PRE_RELEASE, ONLINE
*/
ApiEnvEnum defApiEnv = ApiEnvEnum.DEV
在android 节点下配置:
def envStr = project.hasProperty('API_MODE') ? API_MODE : "${defApiEnv.toString()}”
android defaultConfig节点下配置:
for (ApiEnvEnum anEnum : ApiEnvEnum.values()){
buildConfigField("int", "API_MODE_${anEnum.toString()}", "${anEnum.value}")
}
buildConfigField("int", "API_MODE", "${(envStr as ApiEnvEnum).value}”)
在BuildeConfig中生成api环境,常量和当前环境值。
友盟错误统计的key ,推荐更具网络环境不同配置不同的key ,避免开发错误,上传到线上错误统计账号。
可以配置如下:
def umengDevKey = "5a790c9xxxxxxxx000f6"
def umengReleaseKey = “5a016xxxxxxxxx4127000099"
manifestPlaceholders = [
UMENG_APPKEY : ApiEnvEnum.ONLINE.toString() == envStr ? umengReleaseKey : umengDevKey]