您的位置:首页 > 运维架构 > Shell

shell 脚本自动发布 APP

2017-11-22 10:52 260 查看

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
#########################################java

function 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
#########################################java

function 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=$1
echo "Ready Go !"
shift 1 || true

case "${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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息