up
This commit is contained in:
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
# 自动构建脚本 - 自动增加版本号并编译APK
|
||||
|
||||
# 颜色定义
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${BLUE}==================================${NC}"
|
||||
echo -e "${BLUE} PDA 打印机测试应用 - 自动构建${NC}"
|
||||
echo -e "${BLUE}==================================${NC}"
|
||||
|
||||
# 读取当前版本
|
||||
BUILD_FILE="app/build.gradle.kts"
|
||||
CURRENT_VERSION=$(grep "versionCode = " "$BUILD_FILE" | sed 's/.*versionCode = //' | sed 's/[^0-9]//g')
|
||||
CURRENT_VERSION_NAME=$(grep "versionName = " "$BUILD_FILE" | sed 's/.*versionName = "//' | sed 's/".*//')
|
||||
|
||||
echo -e "${GREEN}当前版本: v${CURRENT_VERSION_NAME} (Build ${CURRENT_VERSION})${NC}"
|
||||
|
||||
# 计算新版本
|
||||
NEW_VERSION=$((CURRENT_VERSION + 1))
|
||||
# 计算新版本名称 (简单递增小版本号)
|
||||
IFS='.' read -r major minor <<< "$CURRENT_VERSION_NAME"
|
||||
NEW_MINOR=$((minor + 1))
|
||||
NEW_VERSION_NAME="${major}.${NEW_MINOR}"
|
||||
|
||||
echo -e "${GREEN}新版本: v${NEW_VERSION_NAME} (Build ${NEW_VERSION})${NC}"
|
||||
|
||||
# 更新版本号
|
||||
sed -i.bak "s/versionCode = $CURRENT_VERSION/versionCode = $NEW_VERSION/" "$BUILD_FILE"
|
||||
sed -i.bak "s/versionName = \"$CURRENT_VERSION_NAME\"/versionName = \"$NEW_VERSION_NAME\"/" "$BUILD_FILE"
|
||||
rm -f "${BUILD_FILE}.bak"
|
||||
|
||||
echo -e "${GREEN}✓ 版本号已更新${NC}"
|
||||
|
||||
# 清理并编译
|
||||
echo -e "${BLUE}开始编译...${NC}"
|
||||
./gradlew clean assembleRelease --no-daemon
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}==================================${NC}"
|
||||
echo -e "${GREEN} ✓ 编译成功!${NC}"
|
||||
echo -e "${GREEN}==================================${NC}"
|
||||
|
||||
# 查找生成的APK
|
||||
APK_PATH=$(find app/build/outputs/apk/release -name "*.apk" -type f | head -n 1)
|
||||
|
||||
if [ -n "$APK_PATH" ]; then
|
||||
APK_SIZE=$(du -h "$APK_PATH" | cut -f1)
|
||||
echo -e "${GREEN}APK 文件: ${APK_PATH}${NC}"
|
||||
echo -e "${GREEN}文件大小: ${APK_SIZE}${NC}"
|
||||
|
||||
# 可选:复制到项目根目录
|
||||
cp "$APK_PATH" "./PDA_Printer_Test_latest.apk"
|
||||
echo -e "${GREEN}✓ 已复制到: ./PDA_Printer_Test_latest.apk${NC}"
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}✗ 编译失败${NC}"
|
||||
# 恢复版本号
|
||||
sed -i.bak "s/versionCode = $NEW_VERSION/versionCode = $CURRENT_VERSION/" "$BUILD_FILE"
|
||||
sed -i.bak "s/versionName = \"$NEW_VERSION_NAME\"/versionName = \"$CURRENT_VERSION_NAME\"/" "$BUILD_FILE"
|
||||
rm -f "${BUILD_FILE}.bak"
|
||||
echo -e "${RED}已恢复原版本号${NC}"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user