Android项目jenkins自动化打包

Android项目jenkins自动化打包

1. jenkins安装步骤

  • 下载jenkins安装包: https://jenkins.io/zh/download/

  • 卸载openjdk, 如果云服务有openjdk, 需要卸载: https://www.cnblogs.com/yyjf/p/10287301.html

  • 开放端口, 云服务器的安全组配置端口 8899(随便选择), 如果服务器安装了宝塔, 还需要开通宝塔的对应端口;

  • 安装java环境, 需要安装java JDK8的版本, 如果版本太高可能编译不了, 我的版本jdk-8u241-linux-x64.tar.gz;

  • 安装jenkins, 安装完成后配置端口 8899: http://www.pianshen.com/article/8973100008

  • jenkins配置java路径, 路径后面要带java执行程序(…/bin/java): https://www.cnblogs.com/liqing1009/p/6824974.html

  • 启动jenkins, 启动成功后, 浏览器访问路径为 http://${ip}:8899 ;

  • 安装插件, 最好是离线安装, 国内云服务器可能需三小时以上, 实在不想离线, 建议晚上睡前安装;

  • 设置jenkins账号; 自己记住

  • linux安装android sdk. 有时候编译不通过就是因为版本不一致, 需要更新sdk: https://www.jianshu.com/p/90f39c0437d7

  • 给jenkins配置java, android sdk, git的路径
    Android项目jenkins自动化打包_第1张图片
    Android项目jenkins自动化打包_第2张图片

  • linux安装gradle: https://www.cnblogs.com/barrywxx/p/7778363.html

  • jenkins配置gradle路径

  • 上传所需插件(可选):

    • AndResGuard: https://www.jianshu.com/p/bd8d31c472b0
    • modify_weixin_packagename.jar(自动化更改微信回调包名路径, 后面提供源码),
    • app_name_modify.jar(自动化更改app名称, 后面提供源码),
    • 360加固linux版本: https://jiagu.360.cn/#/global/download
    • 美团walle打包cli版本的jar包

2. jenkins中android项目的配置

1. 参数化构建

添加参数: app名称app_name, 包名application_id, 版本号app_version_code, 版本名称app_version_name, 360加固账号jiagu360_account(账号密码使用空格分开), git分支git_branch, 操作文件夹my_result

2. 源代码管理

进入源码管理, 选中 git , 填写自己的仓库github或者码云地址, 指定分支: */${git_branch};

3. 编译前配置

选择增加构建步骤->执行shell, 配置如下:

cd  ${WORKSPACE}

#创建my_result操作文件夹
if [ ! -d "${WORKSPACE}/${my_result}" ];then
mkdir ${WORKSPACE}/${my_result}
else
echo "文件夹已经存在"
fi

#创建版本对应的文件夹
if [ ! -d "${WORKSPACE}/${my_result}/${app_version_name}" ];then
mkdir ${WORKSPACE}/${my_result}/${app_version_name}
else
echo "文件夹已经存在"
fi

#删除以前打包的apk
if [ ! -f "${WORKSPACE}/${my_result}/${app_version_name}/${app_version_name%}.apk" ];then
echo "文件不存在"
else
rm -d ${WORKSPACE}/${my_result}/${app_version_name}/${app_version_name%}.apk
fi

#进入java执行文件夹
cd  /usr/local/java/jdk1.8.0_241/bin/

#修改微信回调的包名,不需要可不执行,jar包可以随意放。
#java -jar /home/bobo/modify_weixin_packagename.jar "${WORKSPACE}" "${application_id}"

#修改app的应用名称
java -jar /home/bobo/app_name_modify.jar "${WORKSPACE}" "${app_name}"
4. Gradle配置

进入Invoke Gradle script->Invoke Gradle, 配置Gradle版本:Android项目jenkins自动化打包_第3张图片

5. 编译过程配置

选择增加构建步骤->执行shell, 配置如下:

#默认编译打完包之后apk的路径
releasePath="${WORKSPACE}/app/build/outputs/apk/release/app-release.apk"

#app的证书路径
jksPath="${WORKSPACE}/app/myapp.jks"

#360加固linux版本的jar包路径
jiaguPath="/home/bobo/jiagu/jiagu.jar"

#登录360加固
java -jar ${jiaguPath} -login ${jiagu360_account} 

#给360导入证书
java -jar ${jiaguPath} -importsign ${jksPath} "mykeywords" "myalias" "mykeywords"

#用360加固,加固后路径为${WORKSPACE}/${my_result}/${app_version_name}
java -jar ${jiaguPath} -jiagu ${releasePath} "${WORKSPACE}/${my_result}/${app_version_name}" -autosign  -automulpkg 

#进入此版本文件夹
cd ${WORKSPACE}/${my_result}/${app_version_name}

#理论上这个文件夹里面只有一个加固后的?.apk,命名?.apk为:版本名称.apk
mv *.apk "${app_version_name}.apk"

#复制apk到你需要的地方
cp -f "${app_version_name}.apk" "/home/bobo/apk/${app_version_name}.apk"

#todo 后面可以继续执行你想执行的shell脚本...

3. android项目的配置

  • 在gradle.properties中配置参数, 注意:参数键key需要和jenkins中配置的一样。
#禁止jenkins构建使用缓存
org.gradle.parallel=true
#包名
application_id=com.test.demo
#版本名和版本号
app_version_name=1.1.0
app_version_code=110
#自动化打包后数据输出路径
my_result=my_result
  • app项目中的build.gradle配置
android {
    defaultConfig {
        applicationId project.application_id
        versionCode Integer.parseInt(app_version_code)
        versionName project.app_version_name
  • vivo手机测试安装时需要这个配置
    android.injected.testOnly=false

你可能感兴趣的:(android技能,android,jenkins)