#!/bin/bash
SECONDS=0
buildName="3.1.10"
buildNumber="20190"
appEnv="dev"
apkName="app_v${buildName}_${buildNumber}.apk"
update_description="1.更新描述"
base_dir=$(pwd)
apk_output_dir="$base_dir/fast_android_app"
flutter_build_path="$base_dir/build/app/outputs/flutter-apk/app-debug.apk"
echo "当前工作目录:$base_dir"
echo "APK 输出路径:$apk_output_dir"
echo "Flutter 构建 APK 路径:$flutter_build_path"
while true; do
read -p "请输入更新内容:" update_description
if [ -n "$update_description" ]; then
break
else
echo "更新内容不能为空,请重新输入"
fi
done
echo "开始构建 Flutter Android APK 包..."
flutter --version
flutter build apk --debug --build-name="$buildName" --build-number="$buildNumber" --dart-define=APP_ENV="$appEnv"
if [ $? -eq 0 ]; then
if [ -f "$flutter_build_path" ]; then
mkdir -p "$apk_output_dir"
cp -f "$flutter_build_path" "$apk_output_dir/$apkName"
echo "🎉 构建成功!APK 文件已保存为:$apk_output_dir/$apkName"
else
echo "😭 错误:APK 文件未生成,请检查构建路径:$flutter_build_path"
say "打包失败"
exit 1
fi
else
echo "😭 错误:flutter build apk 构建失败,请检查错误日志"
say "打包失败"
exit 1
fi
API_KEY="xxxxxxxxxxxxxxxxxxx"
APK_PATH="$apk_output_dir/$apkName"
echo "开始上传到蒲公英:$APK_PATH"
UPLOAD_RESULT=$(curl -F "file=@$APK_PATH" -F "_api_key=$API_KEY" -F "buildInstallType=1" -F "buildUpdateDescription=$update_description" https://www.pgyer.com/apiv2/app/upload)
echo "$UPLOAD_RESULT"
if [[ "$UPLOAD_RESULT" =~ \"code\":0 ]]; then
echo "🎉 蒲公英上传成功"
say "分发到蒲公英成功"
else
echo "😭 蒲公英上传失败:$UPLOAD_RESULT"
say "上传失败"
exit 1
fi
open "$apk_output_dir"
echo "📅 Finished. Elapsed time: ${SECONDS}s"