Aos 수동 빌드를 성공했고,
그다음은, AOS패키징을 BuildCookRun 명령으로 패키징되도록 해보는것이다.
목표
1. 에디터에서 성공한 설정을 유지
2. 같은 결과를 UAT BuildCookRun으로 뽑기
3. 명령어를 bat파일로 고정
4. 나중에 Jenkins가 그 bat를 호출하게 만들기
UAT(Unreal Automation Tool) : 패키징 자동화
BuildCookRun : 빌드, 쿠킹, 패키징, 배포/실행까지 한 흐름으로 처리할 수 있다.
Android 패키징 흐름
1. Build : 코드 컴파일 : 실행 가능한 바이너리 생성
2. Cook : 에셋을 타깃 플랫폼용으로 변환 (텍스처, 머티리얼, 맵 등 Android용으로 변환, Saved/Cooked/Android)
3. Stage : 배포용 파일 모으기 (실제 배포에 필요한 파일을 한 폴더로 정리)
4. Package : APK/AAB 생성 (Gradle 호출)
결과물을 패키징을 위해, 기준이 있어야한다. (결정 값)
- Engine 경로
- Project 경로
- Config : Development
- Texture : ASTC
- Output : APK
- Map : 기본 맵
해당 기준을 정해 놓고, 이상태로 패키징이 됐는지 여부로 성공을 정하기로 했다. 최종 결과물인 Jenkins 자동화에서는 결정 값을 선택할 수 있도록 하는게 목표다.
BuildCook할 수 있는 .bat를 만든다.
@echo off
echo ===== UAT BUILD START =====
call "D:\UnrealEngine\UE_5.6\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun ^
-project="D:\UnrealEngine\Hamsterland\Hamsterland.uproject" ^
-noP4 ^
-platform=Android ^
-targetplatform=Android ^
-clientconfig=Development ^
-build ^
-cook ^
-stage ^
-package ^
-archive ^
-archivedirectory="D:\BuildOutput\Hamsterland" ^
-cookflavor=ASTC
echo.
echo EXIT CODE: %ERRORLEVEL%
pause

빌드중..
오류
* What went wrong:
Could not open settings generic class cache for settings file 'Z:\settings.gradle' (C:\Users\gkswl\.gradle\caches\7.5\scripts\356clt8w0kvd14538qat92yfl).
> BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65
UE 5.4 Android 빌드에서 Gradle 7.5가 Java 21 캐시때문에 발생한 원인
원인 분석
Unsupported class file major version 65 에서 버전 65는 Java 21을 의미한다.
cook.bat에 JAVA_HOME을 별도로 지정하지 않으면, 시스템에 설치된 Java 또는 Android Studio는 JBR(JetBrains Runtime)이라는 자체 DK를 번들로 포함하고 있다.
Android Studio가 업데이트되면서 내장 JBR도 Java 21로 올라갔는데, UE 5.4가 사용하는 Gradle 7.5는 Java 17까지만 지원하기 때문에 충돌이 발생한다.
| 구분 | 버전 |
| Android Studio 내장 JBR | Java21 호환 안됨 |
| Gradle 7.5 지원 최대 Java | Java17 |
해결 방법
Eclipse Adoptium JDK 17 설치하고, cook.bat 상단에 JAVA_HOME을 명시했다.
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk-17
set PATH=%JAVA_HOME%\bin;%PATH%
echo ===== UAT BUILD START =====
call "C:\Program Files\Epic Games\UE_5.4\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun ^
-project="D:\UnrealEngine\Hamsterland\Hamsterland.uproject" ^
-noP4 ^
-platform=Android ^
-targetplatform=Android ^
-clientconfig=Development ^
-build ^
-cook ^
-stage ^
-package ^
-archive ^
-archivedirectory="D:\BuildOutput\Hamsterland" ^
-cookflavor=ASTC ^
-stdout ^
-fullstdoutlogoutput
echo.
echo EXIT CODE: %ERRORLEVEL%
pause
set JAVA_HOME을 bat 안에서 지정하는 방식이기 때문에, 시스템 환경변수를 건드리지 않아도 된다.
bat 실행 범위 안에서만 적용된다.
빌드 성공
BUILD SUCCESSFUL in 1m 11s
68 actionable tasks: 67 executed, 1 up-to-date
...
AutomationTool exiting with ExitCode=0 (Success)
EXIT CODE: 0

- Hamsterland-arm64.apk — 기기에 설치할 APK
- Hamsterland-arm64.obb — 게임 데이터 파일
- Install_Hamsterland-arm64-Development.bat — 기기에 자동 설치해주는 배치파일
'Unreal > 에디터 & 툴' 카테고리의 다른 글
| [Unreal5] UBlueprintFunctionLibrary : 랜덤 위치에 액터 스폰하기 (0) | 2025.10.01 |
|---|---|
| [Unreal5] UBlueprintFunctionLibrary로 몽타주 루트모션 ‘이동거리’ 자동 수집하기 (0) | 2025.09.08 |



























































































































