언리얼 모바일 컨텐츠 개발 및 패키징, 최적화까지 실습 할 예정이다.
1. 언리얼 모바일을 활용한 스마트폰에 패키징
플랫폼 안드로이드 & 개발 툴 UE5.5
안드로이드 빌드 및 패키징을 위해 찾은 공식 문서
UE 5.5 버전 기준 필요한 안드로이드 스튜디오 버전, SDK, NDK, JDK 버전을 확인
25.03.12 기준 언리얼 공식 문서를 한글 버전으로 들어가면 5.5버전으로 설정해도 안드로이드 ndk 구성 혹은 설정이 문서에 5.4 버전으로 나온다. 영어 버전으로 들어가야함...
안드로이드 스튜디오 에서 5.5 버전 기준 필요한 SDK 와 CMAKE 설치
25.03.12 기준 안드로이드 스튜디오 아카이브 페이지에서 페이지 언어가 한글이면 구버전이 나오지 않는다. 영어 기준으로 하면 구버전 다운로드 가능한 페이지로 이동 가능
갤럭시 s10 에 패키징까지 진행~
먼저 SDK, NDK, JDK 에 대해 알아보자
SDK 란?
Soft Development kit
소프트웨어를 만들기 위한 도구 모음이다. 라이브러리, API, 컴파일러 등을 포함한다.
갤럭시 기종에 빌드 할 거기 때문에 Android Studio 에서 안드로이드 SDK 를 만들어 안드로이드 앱을 개발할 수 있도록 할 것이다.
NDK 란?
Android Native Development Kit
C OR C++ 로 안드로이드 어플리케이션을 개발 할 수 있도록 지원하는 개발 도구 모음이다.
원래 안드로이드 앱을 개발한다면, Java, Kotlin 으로 개발하지만, NDK 를 사용하면 C/C++ 를 활용해서도 앱을 만들 수 있게 된다. 마찬가지로 Android Studio 에서 원하는 버전의 NDK 를 다운 받아 사용할 것이다.
NDK 는 컴파일러, 네이티브 라이브러리(그래픽 오디오 보안 등등 포함), NDK 빌드 시스템을 포함한다.
JDK 란?
Java Development Kit
Java 기반 어플리케이션을 개발하기 위한 개발 도구 모음이다.
안드로이드 개발말고 다른 서버 웹 관련 개발에서도 사용된다. JNI(Java, Kotlin 과 C/C++ 을 연결하는 인터페이스) 를 가지고 있다. 이 JNI 를 직접 사용하거나 NDK 에서 사용하도록 한다. APK/AAB 패키징을 위해 필요하다.
이 3가지 tool kit 을 사용해서 원하는 버전의 운영체제에 앱을 빌드 할 수 있다.
예를 들면, 안드로이드 12 버전 운영체제에는 SDK 31 버전이 필요하다. (이 내용은 밑에서)
그렇다면, 우리가 구글 플레이에서 게임을 다운 받는다면??
각 스마트폰 기기 별로 운영체제가 다르다. 안드로이드만 하더라도 안드로이드 버전이 다른데 이를 어떻게 자동으로 기기 별로 SDK나 CPU 아키텍처 에 맞는 APK 를 생성 및 설치 할 수 있을까????
필자가 안드로이드 스마트폰을 사용하기 때문에...ㅠ... 내용에 ios 는 뺀다..
이는 패키징 시에 AAB 확장자를 가진 파일을 사용하는 것이다.
AAB(Android App Bundle) 란?
앱을 직접 실행할 수 없는 패키지 파일이다. AAB 자체로는 설치가 안된다. 하지만 구글 플레이 스토어에 이 AAB 파일을 등록하고 사용자가 이 패키징 파일을 사용한다면 구글 플레이에서 사용자의 기기에 맞는 APK 를 생성하여 배포한다. 따라서 기기에 맞는 리소스를 각자 만들 필요없이 자동으로 APK 를 생성해주는 것이다.
*목표는 AAB 파일을 만들어 구글 플레이 등록까지*
이제 다운 받은 안드로이드 스튜디오에서 원하는 SDK 와 NDK 를 설치한다.
여기서 SDK Platforms 와 SDK Tools 가 있다.
플랫폼은 특정 안드로이드 버전의 API 및 기능을 제공한다. Tools 는 앱 개발을 위한 빌드 및 디버깅 도구를 제공한다. 즉, 플랫폼은 각 안드로이드 버전에서 앱을 실행 가능하도록 지원한다.
툴은 AAB,APK 패키징을 위한 빌드 도구를 지원한다.
언리얼 5.5 버전에서 필요한 Tool Kit
이에 맞게 다운하였다.
다음 모바일 버전으로 언리얼 프로젝트를 만들고
이제 해당 SDK 와 NDK, JDK 의 경로를 설정해준다. 여기서 특정할 SDK 와 NDK 를 설정할 수 있다.
참고로 공식문서를 보면 5.5 버전에서는 SDK 를 34 버전을 써야한다고 나온다. 그치만 적정 NDK 가 SDK 33버전까지만 찾기 가능하여 33 버전으로 낮추었다. ( 아마 맞을거임.... )
다음으로 사용할 SDK 의 버전을 설정한다.
그리고 AAB 파일을 이용해서 구글 플레이 스토어에서 APK 를 만들 때 아래와 같이 설정했다면 26~33 버전 사이의 SDK 만 호환된다.
아래는 패키징 시에 원하는 맵만 빌드하기 위해 맵 경로 설정 옵션이다. 기본 맵만 지정했다.
이제 패키징을 하는데.....
끝나고 나면 여기서 bat 파일로 스마트폰에 apk 를 설치 할 수 있다. bat 은 윈도우 용
이제 스마트폰을 pc 에 연결하고
이제 bat 실행하면 ! (bat 은 apk 를 안드로이드 기기에서 빌드하는 역할을 하니 bat 실행 전 스마트폰이 pc 에 연결 되어 있어야한다!
실패함.... sdk 버전이 다르다고 함,.,,, 근데 언리얼 5.5 버전에서 요구하는 sdk 는 다른데 무슨 문제일까?
* 특정 기기에 빌드 할려면 해당 기기의 sdk 를 알고 그에 맞게 패키징 해야한다
그러니까 이렇게 갤럭시 s10 이라는 특정 기기에 빌드할려면 해당 기기의 sdk 버전을 확인하고 그 버전으로 설정하고 패키징 한 뒤에!!!!! bat 파일을 실행하면 된다.
이제 다음과 같이 설정을 바꿔주고 ( 갤럭시 s10 은 안드로이드 12버전이며 sdk31 을 사용한다! ndk 도 25버전을 사용함 )
이제 성공적으로 패키징 되었고 모바일로 게임 실행 성공했다.
다음에는 pc 에서 내 스마트폰 화면을 가져와서 보여줘야겠다....
'UE5' 카테고리의 다른 글
Unreal 5.5 Mobile Firebase Sdk (0) | 2025.03.31 |
---|---|
UE5 JsonObject 와 JsonUtilities 를 이용한 파싱 (0) | 2024.12.05 |
Unreal Network - Possess 동기화 & Spectator Pawn (0) | 2024.11.28 |
Unreal Network - Pistol, Fire, Dead 동기화 (0) | 2024.11.27 |
24-11-22 네트워크 큐브 생성 동기화 (0) | 2024.11.22 |