Procházet zdrojové kódy

Update 优化打包脚本

Yue před 1 měsícem
rodič
revize
3b5ae48c6e

+ 3 - 0
UI/CF.APP/chicken_farm/.scripts/_build_cmd.txt

@@ -10,3 +10,6 @@ copy build\app\outputs\flutter-apk\app-release.apk release\app\pda_cf-app.apk
 
 flutter build apk --target-platform android-arm --dart-define-from-file .env/.env.prod_offline --verbose
 copy build\app\outputs\flutter-apk\app-release.apk release\app\pda-offline_cf-app.apk
+
+// 安装 app目录下的 apk
+adb install -r release/app/cf-app_20251222111721.apk

+ 30 - 40
UI/CF.APP/chicken_farm/.scripts/build.bat

@@ -1,86 +1,76 @@
 @echo off
-chcp 936 >nul 2>&1
+chcp 65001 >nul 2>&1
 setlocal enabledelayedexpansion
 
-:: ========== 1. 基础配置 ==========
+:: ========== 1. 椤圭洰鏍圭洰褰曞垵濮嬪寲 ==========
 set "PROJECT_ROOT=%~dp0\.."
 for %%i in ("%PROJECT_ROOT%") do set "PROJECT_ROOT=%%~fi"
 
-:: ========== 2. 参数校验 ==========
-if "%1" == "" (
-  echo [错误] 用法:run_env.bat [prod^|dev] [^|no_pda^|offline] [appName]
-  echo [示例] run_env.bat prod no_pda "no_pda_cf-app"
+:: ========== 2. 鍙傛暟鏍¢獙 ==========
+if "%~1"=="" (
+  echo [Error] 璇蜂娇鐢ㄥ懡浠�: run_env.bat [prod|dev] [no_pda|offline] [android-arm,android-arm64] [appName]
+  echo [绀轰緥]  run_env.bat prod no_pda android-arm,android-arm64 "no_pda_cf-app"
   pause
   exit /b 1
 )
 
-if /i not "%1" == "prod" if /i not "%1" == "dev" (
-  echo [错误] 第一个参数必须是 prod 或 dev
+if /i not "%~1"=="prod" if /i not "%~1"=="dev" (
+  echo [Error] 鍙傛暟1鏃犳晥锛屼粎鏀�寔 prod 鎴� dev
   pause
   exit /b 1
 )
 
-if not "%2" == "" if /i not "%2" == "no_pda" if /i not "%2" == "offline" (
-  echo [错误] 第二个参数只能是空、no_pda 或 offline
+if not "%~2"=="" if /i not "%~2"=="no_pda" if /i not "%~2"=="offline" (
+  echo [Error] 鍙傛暟2鏃犳晥锛屼粎鏀�寔 no_pda 鎴� offline
   pause
   exit /b 1
 )
 
-:: ========== 3. 核心变量拼接(修复APP_NAME) ==========
-set "ENV=%1"
-if not "%2" == "" set "ENV=%1_%2"
-
-:: APP名称修复:先赋值默认值,再拼接修饰符
-set "APP_NAME=cf-app"  :: 先设置默认值
-if not "%2" == "" set "APP_NAME=%2_%APP_NAME%"  :: 有修饰符则拼接
-if not "%3" == "" set "APP_NAME=%3"  :: 自定义名称优先级最高
+:: ========== 3. 鐜��鍙橀噺鍔犺浇 ==========
+set "ENV=%~1"
+if not "%~2"=="" set "ENV=%~1_%~2"
+set "ANDROID_PLATFORM=android-arm"
+if not "%~3"=="" set "ANDROID_PLATFORM=%~3"
+set "APP_NAME=cf-app"
+if not "%~2"=="" set "APP_NAME=%~2_%APP_NAME%"
+if not "%~4"=="" set "APP_NAME=%~4"
 
 set "ENV_FILE=%PROJECT_ROOT%\.env\.env.%ENV%"
 if not exist "%ENV_FILE%" (
-  echo [错误] 配置文件不存在:%ENV_FILE%
+  echo [Error] 鐜��鏂囦欢涓嶅瓨鍦�: %ENV_FILE%
   pause
   exit /b 1
 )
 
-:: ========== 4. 解析dart-define参数 ==========
+:: ========== 4. 鏋勫缓鍙傛暟鐢熸垚 ==========
 set "DEFINE_ARGS="
 for /f "tokens=1,* delims==" %%a in ('type "%ENV_FILE%" ^| findstr /v "^#" ^| findstr /v "^$"') do (
   set "DEFINE_ARGS=!DEFINE_ARGS! --dart-define=%%a=%%b"
 )
 
-:: ========== 5. 执行编译 ==========
-echo ==============================================
-echo [开始编译] 环境:%ENV% ^| APP名称:%APP_NAME%
+:: ========== 5. 鎵ц�鏋勫缓 ==========
 echo ==============================================
+echo [INFO] 寮€濮嬫瀯寤�: 鐜��=%ENV% ^| 骞冲彴=%ANDROID_PLATFORM% ^| 搴旂敤=%APP_NAME%
 cd /d "%PROJECT_ROOT%"
-call flutter build apk !DEFINE_ARGS! --target-platform android-arm --no-tree-shake-icons
+call flutter build apk !DEFINE_ARGS! --target-platform !ANDROID_PLATFORM! --no-tree-shake-icons 
 if !errorlevel! neq 0 (
-  echo [错误] Flutter编译失败!
+  echo [Error] Flutter鏋勫缓澶辫触
   pause
   exit /b 1
 )
 
-:: ========== 6. 简化版时间戳 ==========
-set "TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
-set "TIMESTAMP=!TIMESTAMP: =0!"
-set "TIMESTAMP=!TIMESTAMP:周一=!" & set "TIMESTAMP=!TIMESTAMP:周二=!" & set "TIMESTAMP=!TIMESTAMP:周三=!"
-set "TIMESTAMP=!TIMESTAMP:周四=!" & set "TIMESTAMP=!TIMESTAMP:周五=!" & set "TIMESTAMP=!TIMESTAMP:周六=!" & set "TIMESTAMP=!TIMESTAMP:周日=!"
+:: ========== 6. 鏂囦欢澶勭悊浼樺寲 ==========
+:: 鐢熸垚鏃堕棿鎴� (YYYYMMDDHHMMSS)
+for /f %%i in ('powershell -Command "Get-Date -Format yyyyMMddHHmmss"') do set TIMESTAMP=%%i
 
-:: ========== 7. 复制APK文件 ==========
 set "APK_SOURCE=%PROJECT_ROOT%\build\app\outputs\flutter-apk\app-release.apk"
-set "APK_DEST_DIR=%PROJECT_ROOT%\release\app\"
-set "APK_DEST=%APK_DEST_DIR%%APP_NAME%_!TIMESTAMP!.apk"
-
-if not exist "%APK_DEST_DIR%" md "%APK_DEST_DIR%" >nul
+set "APK_DEST=%PROJECT_ROOT%\release\app\%APP_NAME%_%TIMESTAMP%.apk"
 
 if exist "%APK_SOURCE%" (
   copy /y "%APK_SOURCE%" "%APK_DEST%" >nul
   echo ==============================================
-  echo [编译成功] APK文件已生成:
-  echo %APK_DEST%
+  echo [INFO] APK鐢熸垚鎴愬姛: %APK_DEST%
   echo ==============================================
 ) else (
-  echo [错误] 未找到编译产物:%APK_SOURCE%
+  echo [Error] APK婧愭枃浠朵笉瀛樺湪: %APK_SOURCE%
 )
-
-

+ 26 - 25
UI/CF.APP/chicken_farm/.scripts/build_all_apk.bat

@@ -2,64 +2,65 @@
 chcp 936 >nul 2>&1
 setlocal enabledelayedexpansion
 
-:: ========== 全局配置(修复路径问题) ==========
-:: 当前脚本目录(.scripts)
+:: ========== 鍏ㄥ眬閰嶇疆锛堜慨澶嶈矾寰勯棶棰橈級 ==========
+:: 褰撳墠鑴氭湰鐩�綍锛�.scripts锛�
 set "SCRIPT_DIR=%~dp0"
-:: 项目根目录(.scripts 的上级目录)
+:: 椤圭洰鏍圭洰褰曪紙.scripts 鐨勪笂绾х洰褰曪級
 set "PROJECT_ROOT=%SCRIPT_DIR%.."
-:: 编译脚本路径(直接指向当前目录的 build.bat,无需重复拼接 .scripts)
+:: 缂栬瘧鑴氭湰璺�緞锛堢洿鎺ユ寚鍚戝綋鍓嶇洰褰曠殑 build.bat锛屾棤闇€閲嶅�鎷兼帴 .scripts锛�
 set "BUILD_SCRIPT=%SCRIPT_DIR%build.bat"
 
-:: ========== 前置检查 ==========
+:: ========== 鍓嶇疆妫€鏌� ==========
 if not exist "%BUILD_SCRIPT%" (
-  echo [错误] 未找到编译脚本:%BUILD_SCRIPT%
+  echo [閿欒�] 鏈�壘鍒扮紪璇戣剼鏈�細%BUILD_SCRIPT%
   pause
   exit /b 1
 )
 
-:: ========== 依次执行编译命令 ==========
+:: ========== 渚濇�鎵ц�缂栬瘧鍛戒护 ==========
 echo ==============================================
-echo 开始批量编译所有APK(共3个环境)
+echo 寮€濮嬫壒閲忕紪璇戞墍鏈堿PK锛堝叡3涓�幆澧冿級
 echo ==============================================
 
-:: 1. 编译 prod 基础环境
+:: 1. 缂栬瘧 prod 鍩虹�鐜��
 echo.
-echo [第1个] 开始编译:prod 基础环境
+echo [绗�1涓猐 寮€濮嬬紪璇戯細prod 鍩虹�鐜��
 call "%BUILD_SCRIPT%" prod
 if !errorlevel! neq 0 (
-  echo [错误] prod 基础环境编译失败!
+  echo [閿欒�] prod 鍩虹�鐜��缂栬瘧澶辫触锛�
   pause
   exit /b 1
 )
-echo [第1个] prod 基础环境编译完成 ??
+echo [绗�1涓猐 prod 鍩虹�鐜��缂栬瘧瀹屾垚 ??
 
-:: 2. 编译 prod_no_pda 环境
+
+:: 2. 缂栬瘧 prod_offline 鐜��
 echo.
-echo [第2个] 开始编译:prod no_pda 环境
-call "%BUILD_SCRIPT%" prod no_pda
+echo [绗�2涓猐 寮€濮嬬紪璇戯細prod offline android-arm鐜��
+call "%BUILD_SCRIPT%" prod offline android-arm
 if !errorlevel! neq 0 (
-  echo [错误] prod no_pda 环境编译失败!
+  echo [閿欒�] prod offline 鐜��缂栬瘧澶辫触锛�
   pause
   exit /b 1
 )
-echo [第2个] prod no_pda 环境编译完成 ??
+echo [绗�2涓猐 prod offline 鐜��缂栬瘧瀹屾垚 ??
 
-:: 3. 编译 prod_offline 环境
+:: 3. 缂栬瘧 prod_no_pda 鐜��
 echo.
-echo [第3个] 开始编译:prod offline 环境
-call "%BUILD_SCRIPT%" prod offline
+echo [绗�3涓猐 寮€濮嬬紪璇戯細prod no_pda android-arm64鐜��
+call "%BUILD_SCRIPT%" prod no_pda android-arm64
 if !errorlevel! neq 0 (
-  echo [错误] prod offline 环境编译失败!
+  echo [閿欒�] prod no_pda 鐜��缂栬瘧澶辫触锛�
   pause
   exit /b 1
 )
-echo [第3个] prod offline 环境编译完成 ??
+echo [绗�3涓猐 prod no_pda 鐜��缂栬瘧瀹屾垚 ??
 
-:: ========== 批量编译完成 ==========
+:: ========== 鎵归噺缂栬瘧瀹屾垚 ==========
 echo.
 echo ==============================================
-echo 所有APK编译完成!?
-echo 生成的文件位于:%PROJECT_ROOT%\release\app\
+echo 鎵€鏈堿PK缂栬瘧瀹屾垚锛�?
+echo 鐢熸垚鐨勬枃浠朵綅浜庯細%PROJECT_ROOT%\release\app\
 echo ==============================================
 
 pause