shell 脚本自动发布 APP
16lz
2021-01-26
devtool.sh 脚本:
#!/usr/local/bin/bash -e########################################## Main#########################################function doBuildApk (){ echo "========================================" echo "Build apk begin ..." echo "========================================" cd .. fastlane do_pack_apk echo "========================================" echo "Build apk OK." echo "========================================"}########################################## LEGU Reinforce#########################################function doLegu (){ echo "========================================" echo "LEGU Reinforce Begin ..." echo "========================================" cd libs java -jar leguapi.jar skey sid ../build/outputs/apk/xxx.apk ../build/outputs/apk}########################################## Rename apk#########################################function doRename (){ echo "========================================" echo "Rename Apk Begin ..." echo "========================================" cd build/outputs/apk mv xxx_legu.apk xxx.apk cd ../../../.. echo "========================================" echo "Rename Apk OK." echo "========================================"}########################################## Sign Again#########################################function doSign (){ echo "========================================" echo "Sign Begin ..." echo "========================================" jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keypass {密码} -storepass {密码} -keystore {签名文件}(keystore.jks) build/outputs/apk/xxx.apk keystore echo "========================================" echo "Sign OK." echo "========================================"}########################################## Login beta fir.im#########################################javafunction doLoginBetaFirim(){ echo "========================================" echo "Login beta fir.im begin ..." echo "========================================" fir login {API token} echo "========================================" echo "Login beta fir.im OK." echo "========================================"}########################################## Login stag fir.im#########################################javafunction doLoginStagFirim(){ echo "========================================" echo "Login stag fir.im begin ..." echo "========================================" fir login {API token} echo "========================================" echo "Login stag fir.im OK." echo "========================================"}########################################## Login release fir.im#########################################function doLoginReleaseFirim(){ echo "========================================" echo "Login release fir.im begin ..." echo "========================================" fir login {API token} echo "========================================" echo "Login release fir.im OK." echo "========================================"}########################################## Upload apk to fir.im#########################################function doUploadApk2Firim(){ echo "========================================" echo "UpLoad apk to fir.im begin ..." echo "========================================" fir publish --changelog='changelog' build/outputs/apk/xxx.apk echo "========================================" echo "UpLoad apk to fir.im OK." echo "========================================"}########################################## Process Args#########################################COMMAND=$1echo "Ready Go !"shift 1 || truecase "${COMMAND}" in build) doBuildApk ;; reinforce) doLegu ;; rename) doRename ;; sign) doSign ;; beta:login) doLoginBetaFirim ;; stag:login) doLoginStagFirim ;; release:login) doLoginReleaseFirim ;; upload) doUploadApk2Firim ;;esac
其中,build 是用 fastlane 实现的,Fastfile 中
desc "Do pack an apk to common flavor" lane :do_pack_apk do |options| gradle(task: "clean") gradle(task: "assemble") gradle(build_type: "Release") end
,上传 fir.im 是用 fir-cli 插件实现的。
发布版本时,执行脚本自动化命令:
1、流程:
自动化构建(fastlane)、腾讯乐固加固、重命名 apk、重新签名、登录 fir.im 、上传 apk:
进入 devtool 的根目录下(devtool.sh 文件右下方必须为 LF)
cd xxx./devtool.sh build./devtool.sh reinforce./devtool.sh rename./devtool.sh sign./devtool.sh beta:login 或 ./devtool.sh release:login 或 ./devtool.sh stag:login./devtool.sh upload
更多相关文章
- java.lang.OutOfMemoryError: GC overhead limit exceeded解决
- Android(安卓)adb monkey 测试命令
- android 项目 gradle 命令
- 用命令行使用7z压缩
- Android(安卓)app 自动化测试(Appium+MacOS)【占坑待续】
- Ubuntu16.04上Android(安卓)N开发环境配置
- 【黑马Android】(13)Linux操作系统/cron计划任务
- Ubuntu10.10下Android真机调试
- Pro Android学习笔记(五):了解Content Provider(上)