From e804ef52d2f2c7ed7324c83b1f6179362ed85ec7 Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Tue, 7 Apr 2026 13:12:24 +0800 Subject: [PATCH] fix: upload script only sync release apk --- upload_android_apk.sh | 42 ++++++++++-------------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/upload_android_apk.sh b/upload_android_apk.sh index ce49b59..d3da123 100755 --- a/upload_android_apk.sh +++ b/upload_android_apk.sh @@ -3,7 +3,6 @@ set -euo pipefail # 专用:上传本地 APK 到服务器,覆盖 # /opt/agent/agents/android-webview-app/app/release/app-release.apk -# 并同步版本元数据(build.gradle.kts + APP_CHANGELOG.md) # 支持命令行自动打包(assembleRelease)+ 上传 # ===== 可按需覆盖(环境变量优先)===== @@ -11,15 +10,11 @@ REMOTE_HOST="${REMOTE_HOST:-59.110.19.30}" REMOTE_USER="${REMOTE_USER:-root}" REMOTE_PORT="${REMOTE_PORT:-22}" REMOTE_APK_PATH="${REMOTE_APK_PATH:-/opt/agent/agents/android-webview-app/app/release/app-release.apk}" -REMOTE_GRADLE_PATH="${REMOTE_GRADLE_PATH:-/opt/agent/agents/android-webview-app/app/build.gradle.kts}" -REMOTE_CHANGELOG_PATH="${REMOTE_CHANGELOG_PATH:-/opt/agent/agents/android-webview-app/APP_CHANGELOG.md}" REMOTE_PASS="${REMOTE_PASS:-}" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" ANDROID_APP_DIR="${ANDROID_APP_DIR:-$SCRIPT_DIR/android-webview-app}" LOCAL_APK_PATH="${LOCAL_APK_PATH:-}" -LOCAL_GRADLE_PATH="${LOCAL_GRADLE_PATH:-$SCRIPT_DIR/android-webview-app/app/build.gradle.kts}" -LOCAL_CHANGELOG_PATH="${LOCAL_CHANGELOG_PATH:-$SCRIPT_DIR/android-webview-app/APP_CHANGELOG.md}" BUILD_APK="${BUILD_APK:-1}" # 1=先打包再上传;0=仅上传 SSH_OPTS=( @@ -76,61 +71,44 @@ main() { echo "或指定现成包: BUILD_APK=0 LOCAL_APK_PATH=/your/app-release.apk bash upload_android_apk.sh" exit 1 fi - if [[ ! -f "$LOCAL_GRADLE_PATH" ]]; then - echo "本地版本文件不存在: $LOCAL_GRADLE_PATH" - exit 1 - fi - if [[ ! -f "$LOCAL_CHANGELOG_PATH" ]]; then - echo "本地更新说明不存在: $LOCAL_CHANGELOG_PATH" - exit 1 - fi - log "本地 APK: $LOCAL_APK_PATH" if [[ "$LOCAL_APK_PATH" == *"-unsigned.apk" ]]; then log "错误:当前是 unsigned APK,无法用于覆盖安装更新。请先配置签名后重新打包。" log "需要环境变量:ANDROID_KEYSTORE_PATH / ANDROID_KEYSTORE_PASSWORD / ANDROID_KEY_ALIAS / ANDROID_KEY_PASSWORD" exit 1 fi - log "本地版本文件: $LOCAL_GRADLE_PATH" - log "本地更新说明: $LOCAL_CHANGELOG_PATH" log "目标服务器: $REMOTE_USER@$REMOTE_HOST:$REMOTE_APK_PATH" - local remote_apk_dir remote_gradle_dir remote_changelog_dir + local remote_apk_dir remote_apk_dir="$(dirname "$REMOTE_APK_PATH")" - remote_gradle_dir="$(dirname "$REMOTE_GRADLE_PATH")" - remote_changelog_dir="$(dirname "$REMOTE_CHANGELOG_PATH")" if [[ -n "$REMOTE_PASS" ]]; then need_cmd sshpass - log "创建远程目录: $remote_apk_dir / $remote_gradle_dir / $remote_changelog_dir" + log "创建远程目录: $remote_apk_dir" sshpass -p "$REMOTE_PASS" ssh -p "$REMOTE_PORT" "${SSH_OPTS[@]}" "$REMOTE_USER@$REMOTE_HOST" \ - "mkdir -p '$remote_apk_dir' '$remote_gradle_dir' '$remote_changelog_dir'" + "mkdir -p '$remote_apk_dir'" - log "上传并覆盖 APK + 版本元数据" + log "上传并覆盖 APK" sshpass -p "$REMOTE_PASS" scp -P "$REMOTE_PORT" "${SSH_OPTS[@]}" "$LOCAL_APK_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_APK_PATH" - sshpass -p "$REMOTE_PASS" scp -P "$REMOTE_PORT" "${SSH_OPTS[@]}" "$LOCAL_GRADLE_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_GRADLE_PATH" - sshpass -p "$REMOTE_PASS" scp -P "$REMOTE_PORT" "${SSH_OPTS[@]}" "$LOCAL_CHANGELOG_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_CHANGELOG_PATH" log "远程文件检查" sshpass -p "$REMOTE_PASS" ssh -p "$REMOTE_PORT" "${SSH_OPTS[@]}" "$REMOTE_USER@$REMOTE_HOST" \ - "ls -lh '$REMOTE_APK_PATH' '$REMOTE_GRADLE_PATH' '$REMOTE_CHANGELOG_PATH'" + "ls -lh '$REMOTE_APK_PATH'" else log "使用 SSH Key 模式(未提供 REMOTE_PASS)" - log "创建远程目录: $remote_apk_dir / $remote_gradle_dir / $remote_changelog_dir" + log "创建远程目录: $remote_apk_dir" ssh -p "$REMOTE_PORT" "${SSH_OPTS[@]}" "$REMOTE_USER@$REMOTE_HOST" \ - "mkdir -p '$remote_apk_dir' '$remote_gradle_dir' '$remote_changelog_dir'" + "mkdir -p '$remote_apk_dir'" - log "上传并覆盖 APK + 版本元数据" + log "上传并覆盖 APK" scp -P "$REMOTE_PORT" "${SSH_OPTS[@]}" "$LOCAL_APK_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_APK_PATH" - scp -P "$REMOTE_PORT" "${SSH_OPTS[@]}" "$LOCAL_GRADLE_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_GRADLE_PATH" - scp -P "$REMOTE_PORT" "${SSH_OPTS[@]}" "$LOCAL_CHANGELOG_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_CHANGELOG_PATH" log "远程文件检查" ssh -p "$REMOTE_PORT" "${SSH_OPTS[@]}" "$REMOTE_USER@$REMOTE_HOST" \ - "ls -lh '$REMOTE_APK_PATH' '$REMOTE_GRADLE_PATH' '$REMOTE_CHANGELOG_PATH'" + "ls -lh '$REMOTE_APK_PATH'" fi - log "完成:服务器 APK 与版本信息已更新" + log "完成:服务器 APK 已更新" } main "$@"