Files
xianyan/linux/packaging/build_all.sh
Developer a60957cc0e feat: 发布v5.3.0正式版本,完善跨平台适配与功能优化
本次更新包含多项核心改进:
1. 新增统一跨平台导航扩展,替换原有GoRouter调用,适配鸿蒙平台路由逻辑
2. 重构状态初始化逻辑,使用Future.microtask避免BuildContext异常
3. 完善Linux桌面端支持,添加桌面文件、AppData配置与WSL构建脚本
4. 修复鸿蒙平台动画渲染异常问题,移除平台特判逻辑
5. 优化NFC配对扫描参数,精简不必要的配置项
6. 更新依赖版本与项目版本号
7. 修复Drift数据库缓存问题,移除冗余的表检测逻辑
8. 添加路由观察者日志,优化鸿蒙端路由调试体验
9. 完善签到与文章发布后的用户数据刷新逻辑
10. 删除冗余的子模块与日志文件,清理项目结构
2026-05-18 08:58:36 +08:00

152 lines
3.8 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ============================================================
# 闲言APP — Linux一键构建+打包脚本
# 创建时间: 2026-05-18
# 更新时间: 2026-05-18
# 作用: 在WSL/Linux中一键完成Flutter构建和所有格式打包
# 上次更新: 初始创建
# ============================================================
set -e
APP_NAME="xianyan"
APP_VERSION="5.2.0"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(cd "${SCRIPT_DIR}/../.." && pwd)"
echo "=========================================="
echo " 闲言 v${APP_VERSION} — Linux 一键构建打包"
echo "=========================================="
echo ""
check_flutter() {
if ! command -v flutter &> /dev/null; then
echo "❌ Flutter 未安装,请先安装 Flutter SDK"
echo " 参考: https://docs.flutter.dev/get-started/install/linux"
exit 1
fi
echo "✅ Flutter: $(flutter --version | head -1)"
}
install_deps() {
echo ""
echo "📦 检查系统依赖..."
local deps=(
clang cmake ninja-build pkg-config
libgtk-3-dev liblzma-dev libstdc++-12-dev
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
libasound2-dev libsecret-1-dev libbluetooth-dev
libnotify-dev libmpv-dev
curl unzip xz-utils zip dpkg-dev fakeroot
)
local missing=()
for dep in "${deps[@]}"; do
if ! dpkg -s "$dep" &> /dev/null 2>&1; then
missing+=("$dep")
fi
done
if [ ${#missing[@]} -gt 0 ]; then
echo "📥 安装缺失依赖: ${missing[*]}"
sudo apt update
sudo apt install -y "${missing[@]}" || {
echo "⚠️ 部分依赖安装失败,尝试继续构建..."
}
else
echo "✅ 所有系统依赖已安装"
fi
}
build_flutter() {
echo ""
echo "🔨 Flutter 构建 (Release)..."
cd "${PROJECT_DIR}"
flutter config --enable-linux-desktop
flutter pub get
flutter build linux --release
if [ ! -d "build/linux/x64/release/bundle" ]; then
echo "❌ 构建失败bundle 目录不存在"
exit 1
fi
echo "✅ Flutter 构建成功"
echo " 产物: build/linux/x64/release/bundle/"
}
package_all() {
echo ""
echo "📦 开始打包所有格式..."
cd "${PROJECT_DIR}"
mkdir -p dist
echo ""
echo "--- [1/3] tar.gz 便携包 ---"
bash linux/packaging/build_tarball.sh
echo ""
echo "--- [2/3] .deb 安装包 ---"
bash linux/packaging/build_deb.sh
echo ""
echo "--- [3/3] AppImage ---"
bash linux/packaging/build_appimage.sh
echo ""
echo "=========================================="
echo " ✅ 全部打包完成!"
echo "=========================================="
echo ""
echo "产物列表:"
ls -lh dist/ 2>/dev/null || echo " (无产物)"
echo ""
echo "安装方式:"
echo " .deb: sudo dpkg -i dist/${APP_NAME}_${APP_VERSION}_amd64.deb"
echo " AppImage: chmod +x dist/${APP_NAME}_${APP_VERSION}_x86_64.AppImage && ./dist/${APP_NAME}_${APP_VERSION}_x86_64.AppImage"
echo " tar.gz: tar -xzf dist/${APP_NAME}_${APP_VERSION}_linux_x64.tar.gz && cd ${APP_NAME}_${APP_VERSION}_linux_x64 && ./run.sh"
}
case "${1:-all}" in
deps)
install_deps
;;
build)
check_flutter
build_flutter
;;
deb)
bash linux/packaging/build_deb.sh
;;
appimage)
bash linux/packaging/build_appimage.sh
;;
tarball)
bash linux/packaging/build_tarball.sh
;;
package)
package_all
;;
all|"")
check_flutter
install_deps
build_flutter
package_all
;;
*)
echo "用法: $0 {deps|build|deb|appimage|tarball|package|all}"
echo ""
echo " deps — 仅安装系统依赖"
echo " build — 仅Flutter构建"
echo " deb — 仅打包.deb"
echo " appimage — 仅打包AppImage"
echo " tarball — 仅打包tar.gz"
echo " package — 打包所有格式(需先build)"
echo " all — 完整流程: 依赖→构建→打包(默认)"
;;
esac