ios 之 自动打包 一键打包脚本 【bash优化版本】
$[timeformat('2021-10-08T10:58:47+08:00')]

选择打包scheme

# 选择打包环境
function selectedScheme() {
  #statements
  echo "请选择打包对象: \n 1) GaoKao(**高考) \n 2) Zhongkao(**中考)"
  read app_scheme

  if [[ $app_scheme == 1 ]]; then
    echo "您选择的是:GaoKao(**高考)"
    app_scheme="GaoKao"
  elif [[ $app_scheme == 2 ]]; then
    echo "您选择的是:Zhongkao(**中考)"
    app_scheme="Zhongkao"
  else
    selectedScheme
  fi
}

选择打包环境

function selectedConfiguration() {
  #statements
  echo "-- 😁 --\n"
  echo "--\n"
  echo "请选择打包环境:\n 1)Release \n 2)LXRelease_dev \n 3)LXRelease_kfc \n 4)LXRelease_tsl"

  read configuration

  if [[ $configuration == 1 ]]; then
    echo "您选择的是Release环境"
    configuration="Release"
  elif [[ $configuration == 2 ]]; then
    echo "您选择的是LXRelease_dev环境"
    configuration="LXRelease_dev"
  elif [[ $configuration == 3 ]]; then
    echo "您选择的是LXRelease_kfc环境"
    configuration="LXRelease_kfc"
  elif [[ $configuration == 4 ]]; then
    echo "您选择的是LXRelease_tsl环境"
    configuration="LXRelease_tsl"
  else
    selectedConfiguration
  fi
}

读取更新信息

function readUpdateInfo() {
  echo "-\n"
  echo "--\n"
  echo "请输入您当前版本更新信息:"

  read update_info
}

打印打包信息

function logPackageInfo() {
  echo "打包信息---------->:\n"
  echo "打包scheme是   -->: ${app_scheme}"
  echo "您选择的是     -->: ${configuration}"
  echo "版本更新信息   -->: ${update_info}"
}

上传dSYM到bugly进行分析

# -------------------->> 上传 dSYM 文件
function uploaddSYMFile() {
  #statements
  echo "bugly --- start......"

  output_file_name=""
  bugly_appName=""
  bugly_configName=""

  if [[ ${app_scheme} = "GaoKao" ]]; then
    bugly_appName="**高考"
  elif [[ ${app_scheme} == "Zhongkao" ]]; then
    bugly_appName="**中考"
  fi

  if [[ ${configuration} = "LXRelease" ]]; then
    bugly_configName=""
  elif [[ ${configuration} = "LXRelease_dev" ]]; then
    bugly_configName="dev"
  elif [[ ${configuration} = "LXRelease_tsl" ]]; then
    bugly_configName="tsl"
  elif [[ ${configuration} = "LXRelease_kfc" ]]; then
    bugly_configName="kfc"
  fi

  output_file_name="${app_scheme}_${configuration}"

  bugly_dsym_zip_path="./AppOutput/${output_file_name}.app.dSYM.zip"

  echo "kael ------rm"
  # rm "./AppOutput/dsym_upload/"
  find "./AppOutput/dsym_upload/" -name "*.dSYM" | xargs rm -rf
  find "./AppOutput/" -name "dsym_upload.zip" | xargs rm -rf
  echo "kael ------rm -- end"

  # 解压文件
  echo "kael ------unzip"
  echo "path -- $bugly_dsym_zip_path"
  unzip ${bugly_dsym_zip_path} -d "./AppOutput/dsym_upload/"

  bugly_java_path="./buglySymboliOS/buglySymboliOS.jar"
  bugly_dsym_path="./AppOutput/dsym_upload/"
  echo "${bugly_dsym_path}"

  echo "kael ------upload start"
  java -jar $bugly_java_path -i $bugly_dsym_path -dsym -u -id 900058462 -key f8V5dgJO5em0CPPk -package com.lexue.lexuegaokao -version 3.3.3

}

普通打包

# -------------------->>  普通打包任务
function normal_archive() {
  #statements
  selectedScheme
  # # 等待 沉睡
  # sleep 0.5s
  # 选择打包环境
  selectedConfiguration
  # 等待 沉睡
  sleep 0.5s
  # 读取版本更新信息
  readUpdateInfo
  # 等待 沉睡
  sleep 0.5s
  # 打印更新信息
  logPackageInfo

  fastlane ipa_release scheme:$app_scheme configuration:$configuration update_info:$update_info

  logPackageInfo

  uploaddSYMFile

}

多环境 多scheme 打包

# -------------------->> 单个打包任务
function one_serial_archive() {
  app_scheme=$1
  configuration=$2
  update_info=$3
  #打印信息
  logPackageInfo
  # 打包导出
  fastlane ipa_release scheme:$app_scheme configuration:$configuration update_info:$update_info
  # 打印信息
  logPackageInfo
  # 上传dSYM
  uploaddSYMFile
} 
# -------------------->> 多个打包任务
function serial_archive() {
  readUpdateInfo

  # 中考
  one_serial_archive "Zhongkao" "Release" $update_info
  one_serial_archive "Zhongkao" "LXRelease_dev" $update_info
  one_serial_archive "Zhongkao" "LXRelease_kfc" $update_info
  one_serial_archive "Zhongkao" "LXRelease_tsl" $update_info
  # 高考
  one_serial_archive "GaoKao" "Release" $update_info
  one_serial_archive "GaoKao" "LXRelease_dev" $update_info
  one_serial_archive "GaoKao" "LXRelease_kfc" $update_info
  one_serial_archive "GaoKao" "LXRelease_tsl" $update_info
}

脚本使用

# 打包一系列环境的包
serial_archive

命令行工具中输入sh ipa.sh即可

文件共享

buly文件链接:https://pan.baidu.com/s/13jaP6Jggp6DcDwqXYeEjHg 密码:lowx JDK(java环境安装文件)链接:https://pan.baidu.com/s/1NtGdP0cANQz7TtyYU2mycg 密码:f6af