2024-06-21 10:36:10 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# 废弃 api 检测脚本+项目编译脚本
|
|
|
|
|
|
# 首次使用记得安装jq: brew install jq
|
|
|
|
|
|
|
2024-06-24 11:53:36 +08:00
|
|
|
|
###############################################################
|
|
|
|
|
|
############## 正常情况下只需要修改配置,不需要修改代码 ###############
|
|
|
|
|
|
###############################################################
|
2024-06-21 10:36:10 +08:00
|
|
|
|
# 设置
|
2024-07-23 17:40:25 +08:00
|
|
|
|
# environment 改为命令行参数
|
|
|
|
|
|
environment=$1
|
|
|
|
|
|
if [ -z "$environment" ]; then
|
|
|
|
|
|
echo "错误: 请传入环境参数"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
2024-06-24 11:53:36 +08:00
|
|
|
|
|
2024-07-23 17:40:25 +08:00
|
|
|
|
# main_file 根据环境选择
|
2024-06-24 11:53:36 +08:00
|
|
|
|
case $environment in
|
|
|
|
|
|
dev)
|
2024-07-23 17:40:25 +08:00
|
|
|
|
main_file="lib/main_dev.dart"
|
2024-06-24 11:53:36 +08:00
|
|
|
|
api_prefix='https://dev.lock.star-lock.cn'
|
|
|
|
|
|
;;
|
|
|
|
|
|
pre)
|
2024-07-23 17:40:25 +08:00
|
|
|
|
main_file="lib/main_pre.dart"
|
2024-06-24 11:53:36 +08:00
|
|
|
|
api_prefix='https://pre.lock.star-lock.cn'
|
|
|
|
|
|
;;
|
|
|
|
|
|
sky)
|
2024-07-24 11:45:33 +08:00
|
|
|
|
main_file="lib/main_sky_full.dart"
|
2024-06-24 11:53:36 +08:00
|
|
|
|
api_prefix='https://lock.skychip.top'
|
|
|
|
|
|
;;
|
|
|
|
|
|
xhj)
|
2024-07-24 11:45:33 +08:00
|
|
|
|
main_file="lib/main_xhj_full.dart"
|
2024-06-24 11:53:36 +08:00
|
|
|
|
api_prefix='https://lock.xhjcn.ltd'
|
|
|
|
|
|
;;
|
2024-07-23 18:02:47 +08:00
|
|
|
|
local)
|
|
|
|
|
|
main_file="lib/main_local.dart"
|
|
|
|
|
|
api_prefix='http://192.168.1.15:8022'
|
|
|
|
|
|
;;
|
2024-06-24 11:53:36 +08:00
|
|
|
|
*)
|
2024-07-23 17:40:25 +08:00
|
|
|
|
echo "错误: flavor[$environment] mainFile not found"
|
2024-06-24 11:53:36 +08:00
|
|
|
|
exit 1
|
|
|
|
|
|
;;
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
2024-07-23 17:40:25 +08:00
|
|
|
|
# 版本改为从 pubspec.yaml 的 version 字段获取
|
|
|
|
|
|
version_string=$(grep version: pubspec.yaml | awk '{print $2}' | tr -d "'")
|
|
|
|
|
|
# 读取到的版本号为 1.0.69+2024070302 需要去掉 +2024070302
|
|
|
|
|
|
version_string=${version_string%%+*}
|
|
|
|
|
|
|
|
|
|
|
|
echo "版本号为: $version_string"
|
|
|
|
|
|
|
|
|
|
|
|
file_path="lib/network/api.dart"
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-24 11:53:36 +08:00
|
|
|
|
echo "API 前缀为: $api_prefix"
|
|
|
|
|
|
|
2024-06-24 18:31:37 +08:00
|
|
|
|
response=$(curl -s -X POST -d "version=$version_string" "$api_prefix/api/app/checkAppBuildVersion")
|
|
|
|
|
|
error_code=$(echo $response | jq '.errorCode')
|
|
|
|
|
|
|
|
|
|
|
|
# 判断是否成功
|
|
|
|
|
|
if [ "$error_code" != "0" ]; then
|
|
|
|
|
|
error_msg=$(echo $response | jq -r '.errorMsg')
|
|
|
|
|
|
echo "失败:$error_msg"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
urls=$(curl -s -X POST -d "version=$version_string" "$api_prefix/api/app/getDeprecatedApiList" | jq -r '.data[].url')
|
2024-06-21 10:36:10 +08:00
|
|
|
|
echo "* 成功获取废弃 api 数据"
|
|
|
|
|
|
|
2024-06-24 11:53:36 +08:00
|
|
|
|
# 解析 api 文件数据
|
2024-06-21 10:36:10 +08:00
|
|
|
|
string_array=()
|
|
|
|
|
|
while IFS= read -r line; do
|
|
|
|
|
|
string_array+=("$line")
|
|
|
|
|
|
done < <(egrep -o "'[^']*'" "$file_path")
|
|
|
|
|
|
echo "* 解析 api 文件数据,开始对比"
|
|
|
|
|
|
|
2024-07-23 18:02:47 +08:00
|
|
|
|
|
2024-07-24 09:59:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-06-24 11:53:36 +08:00
|
|
|
|
# 进度条初始化
|
|
|
|
|
|
total_urls=$(echo "$urls" | wc -l | tr -d ' ')
|
|
|
|
|
|
current_url=0
|
2024-07-23 17:40:25 +08:00
|
|
|
|
|
2024-07-23 18:02:47 +08:00
|
|
|
|
|
2024-06-24 11:53:36 +08:00
|
|
|
|
|
2024-07-23 18:02:47 +08:00
|
|
|
|
# 检查每个废弃的API URL
|
2024-06-21 10:36:10 +08:00
|
|
|
|
for url in $urls; do
|
2024-07-24 09:59:38 +08:00
|
|
|
|
#删除${string_array[@]}中的单引号
|
|
|
|
|
|
string_array=(${string_array[@]//\'/})
|
|
|
|
|
|
for element in "${string_array[@]}"; do
|
|
|
|
|
|
if [[ "$element" == "$url" ]]; then
|
|
|
|
|
|
echo "错误: 存在废弃 api: $url"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
done
|
2024-06-24 11:53:36 +08:00
|
|
|
|
# 更新进度条
|
|
|
|
|
|
let current_url++
|
|
|
|
|
|
let progress=(current_url*100/total_urls)
|
|
|
|
|
|
printf "\r进度: [%-50s] %d%%" $(printf '%*s' $((progress/2)) | tr ' ' '#') $progress
|
2024-06-21 10:36:10 +08:00
|
|
|
|
done
|
|
|
|
|
|
|
2024-07-24 09:59:38 +08:00
|
|
|
|
|
2024-06-24 11:53:36 +08:00
|
|
|
|
# 新的输出从新行开始
|
|
|
|
|
|
echo -e "\n* 没有发现废弃 API,开始编译"
|
|
|
|
|
|
|
|
|
|
|
|
# 编译命令
|
2024-07-23 17:40:25 +08:00
|
|
|
|
#flutter clean && flutter pub get
|
2024-06-21 10:36:10 +08:00
|
|
|
|
flutter build apk --flavor $environment -t $main_file
|
2024-08-05 11:39:30 +08:00
|
|
|
|
#flutter build ios --flavor $environment -t $main_file
|