guoyu/log/备份/ps1/内层_一键重新打包.ps1
2025-12-07 00:11:06 +08:00

119 lines
3.8 KiB
PowerShell
Raw 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.

#!/usr/bin/env pwsh
# ============================================
# 一键重新打包 APK
# 使用场景:修改服务器地址、语音测评代码后快速打包
# ============================================
$ErrorActionPreference = "Stop"
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " 一键重新打包 APK" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# 配置信息
$ProjectRoot = $PSScriptRoot
$SDKRoot = "D:\4_Part\HBuilder-Android\HBuilder-Integrate-AS"
$AppID = "__UNI__08E0C13"
# 步骤 1检查配置文件
Write-Host "[ 1/4 ] 检查配置..." -ForegroundColor Yellow
$ConfigFile = "$ProjectRoot\src\utils\config.js"
if (Test-Path $ConfigFile) {
$ConfigContent = Get-Content $ConfigFile -Raw
if ($ConfigContent -match "DEFAULT_SERVER_HOST\s*=\s*'([^']+)'") {
$CurrentIP = $Matches[1]
Write-Host " 当前服务器地址: $CurrentIP" -ForegroundColor Green
}
} else {
Write-Host " 警告:找不到配置文件" -ForegroundColor Red
}
# 步骤 2编译 uni-app 项目
Write-Host ""
Write-Host "[ 2/4 ] 编译 uni-app 项目..." -ForegroundColor Yellow
Write-Host " 预计时间: 2-3 分钟" -ForegroundColor Gray
Push-Location $ProjectRoot
try {
npm run build:app
if ($LASTEXITCODE -ne 0) {
throw "uni-app 编译失败"
}
Write-Host " ✓ uni-app 编译成功" -ForegroundColor Green
} catch {
Write-Host " ✗ 编译失败: $_" -ForegroundColor Red
Pop-Location
exit 1
} finally {
Pop-Location
}
# 步骤 3集成资源到 Android Studio
Write-Host ""
Write-Host "[ 3/4 ] 集成资源..." -ForegroundColor Yellow
$IntegrateScript = "$ProjectRoot\integrate.ps1"
if (Test-Path $IntegrateScript) {
& $IntegrateScript
if ($LASTEXITCODE -ne 0) {
Write-Host " ✗ 资源集成失败" -ForegroundColor Red
exit 1
}
Write-Host " ✓ 资源集成成功" -ForegroundColor Green
} else {
Write-Host " 警告:找不到集成脚本,跳过此步骤" -ForegroundColor Yellow
}
# 步骤 4构建 APK
Write-Host ""
Write-Host "[ 4/4 ] 构建 APK..." -ForegroundColor Yellow
Write-Host " 预计时间: 2-3 分钟" -ForegroundColor Gray
Push-Location $SDKRoot
try {
.\gradlew assembleDebug
if ($LASTEXITCODE -ne 0) {
throw "APK 构建失败"
}
Write-Host ""
Write-Host "========================================" -ForegroundColor Green
Write-Host " 构建成功!" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Green
$APKPath = "$SDKRoot\simpleDemo\build\outputs\apk\debug\simpleDemo-debug.apk"
if (Test-Path $APKPath) {
$APKInfo = Get-Item $APKPath
$SizeMB = [math]::Round($APKInfo.Length / 1MB, 2)
Write-Host ""
Write-Host "APK 位置:" -ForegroundColor Cyan
Write-Host " $APKPath" -ForegroundColor White
Write-Host ""
Write-Host "APK 大小: $SizeMB MB" -ForegroundColor Cyan
Write-Host "构建时间: $($APKInfo.LastWriteTime)" -ForegroundColor Cyan
Write-Host ""
# 询问是否打开文件夹
$Response = Read-Host "是否打开 APK 所在文件夹? (Y/n)"
if ($Response -ne 'n' -and $Response -ne 'N') {
explorer.exe "/select,$APKPath"
}
}
} catch {
Write-Host ""
Write-Host " ✗ 构建失败: $_" -ForegroundColor Red
Pop-Location
exit 1
} finally {
Pop-Location
}
Write-Host ""
Write-Host "提示:如需修改服务器地址,编辑以下文件:" -ForegroundColor Yellow
Write-Host " $ProjectRoot\src\utils\config.js" -ForegroundColor Gray
Write-Host ""
Write-Host "按任意键退出..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")