将APP bundle安装的手机,要经过几道步骤,此脚本用来一键安装,仅此而已。
#!/bin/bash RED='\033[0;31m' PURPLE='\033[0;35m' GREEN='\033[0;32m' NC='\033[0m' # No Color ROOT_PATH="${PWD}/.aab/" APKS_PATH="${ROOT_PATH}apks/outoput.apks" DEVICE_SPEC_DIR="${ROOT_PATH}device_spec/" DEVICE_SPEC="${DEVICE_SPEC_DIR}device-spec.json" AAB_PATH=${1} DEVICE_ID=${2} printError(){ echo "${RED} ${1} ${NC}"; } printInfo(){ echo "${GREEN} ${1} ${NC}"; } echo "安装aab到当前设备 ${NC}" echo "创建工作空间目录:${ROOT_PATH}" echo "aab路径:${AAB_PATH}" mkdir -p "${ROOT_PATH}" if test -f "$AAB_PATH"; then echo "$AAB_PATH 存在" else printError "请提供.aab文件路径,e.g." printError "sh install_aab.sh xxxx.aab" exit 0 fi #校验结果 checkResult(){ if [[ ${PIPESTATUS[0]} -ne "0" ]]; then printError "$1失败!Error:${PIPESTATUS[0]}"; exit 1; else echo "${PURPLE}$1成功!${NC}"; fi } #清空文件夹 clearFolder(){ if [[ -d "${1}" ]]; then echo "${RED}清空文件夹 ${1} ${NC}" rm -r "${1}" fi } alias bundletool="java -jar ./ProductFlavors/bundletool-all-1.4.0.jar" #加载bundletool 到本地 echo echo echo printInfo "清空设备配置目录……" clearFolder ${DEVICE_SPEC_DIR} if [ -z "${2}" ] then DEVICE_PARAM="" else DEVICE_PARAM="--device-id=${DEVICE_ID}" fi echo echo echo printInfo "开始生成当前指定设备的配置……" bundletool get-device-spec ${DEVICE_PARAM} --output=${DEVICE_SPEC} checkResult "生成当前指定设备的配置" echo echo echo printInfo "开始生成当前指定设备的apks,请等待……" bundletool build-apks --device-spec=${DEVICE_SPEC} --bundle=${AAB_PATH} --output=${APKS_PATH} \ --overwrite \ --ks=证书文件 \ --ks-pass=pass:证书存储密码 \ --ks-key-alias=证书别名 \ --key-pass=pass:证书密码 checkResult "生成当前指定设备的apks" echo echo echo printInfo "开始安装,请等待……" bundletool install-apks ${DEVICE_PARAM} --apks=${APKS_PATH} checkResult "安装apks到指定设备"