세팅 준비
이 옵션을 체크할 경우 .apk 파일안에 모든것이 다 들어가있고
비활성화 할 경우 기본.apk 와 .obb 파일들로 나뉘어져 패키징 됨
구글 플레이에 올리기 위해서는 해당 옵션을 체크 해제해야 하고, 안드로이드에서 테스트 하기 위해선 체크해야 함
오류관련 (.bat 파일)
패키징 후에 배치파일을 실행하여 연결된 안드로이드에 OBB 파일을 설치할 수 있는데 배치파일이 잘못 작성되어있다 (5.3.2 기준)
배치파일을 확인해 보면 AFS_ 가 붙은 .apk파일 이름을 잘못 참조하고있다. (위에서 32비트 지원 옵션을 비활성화해서 일수도 있다)
배치파일에서 해당 이름을 _universal대신 -arm64로 바꾸어주던가
이 옵션을 제거하면 AFS_ 플러그인을 사용하지않는 apk 파일을 사용함을 알 수 있다.
주의 -> 해당 옵션을 끄면 AGDE를 이용한 모바일 디버깅이 불가능하다
오류관련 (AAB)
Google Play Console에 업로드한 AAB 파일을 다운받아 실행해 보면 검은화면으로 막히고, 해당 파일을 설치해서 실행하면 Failed to Open Descriptor Uproject 에러가 뜬다.
정확히는 Generate Bundle (ABB) 을 활성화 시키고 패키징후 설치하면 Failed to Open Descriptor Uproject 에러가 뜬다.
해결방법
Andorid -14 (SDK 34이상) 에서 앱이 실행되지 않는 오류가 있다고 한다.
다음과 같이 바꾸어 준다.
- implementation('com.google.android.play:core:1.10.0')
+ implementation('com.google.android.play:asset-delivery:2.2.2')
+ implementation('com.google.android.play:asset-delivery-ktx:2.2.2')
- import com.google.android.play.core.tasks.OnCompleteListener;
- import com.google.android.play.core.tasks.OnSuccessListener;
- import com.google.android.play.core.tasks.RuntimeExecutionException;
- import com.google.android.play.core.tasks.Task;
+ import com.google.android.gms.tasks.OnCompleteListener;
+ import com.google.android.gms.tasks.OnSuccessListener;
+ import com.google.android.gms.tasks.RuntimeExecutionException;
+ import com.google.android.gms.tasks.Task;
Andorid Studio 로 AAB 파일 뽑기
우선 AAB 로 뽑은다음에 배치파일로 apk설치하면 Failed to open Descriptor는 무조건 발생
(버전 코드 잘 못 뽑았을때 AAB 빨리 생성하는 방법)
사전조건
이미 패키징이 한 번 되어있는 상태이어야 함
그래야 Intermediate 폴더 안에 gradle 파일이 생긴다.
해당 gradle을 Open File or project 로 연다.
(아마 이미 쿠킹되어있는 에셋을 사용하는것으로 알고 있다.)
타겟 SDK 버전 / Store 버전은 해당 세팅에서 설정할 수도있지만
여기서 설정하는거랑 같음
세팅이 완료되었으면 AAB를 생성해주고
키스토어 세팅
AAB 저장 위치
Destination Folder는 프로젝트와 같은 드라이브 즉, 여기선 D드라이브를 벗어나면 안된다. (오류남)
테스트 종류
내부 테스트: 내부 테스트 버전을 만들어 최대 100명의 테스터에게 앱을 빠르게 배포
비공개 테스트: 비공개 테스트 버전에서 더 광범위한 테스터를 대상으로 출시 전 버전의 앱을 테스트
공개 테스트: 대규모 그룹을 대상으로 테스트를 실행하고 앱의 테스트 버전을 Google Play에 공개
내부 ~ 비공개 테스트는 이메일을 하나씩 추가하여 테스터를 등록해야하고 PlayStore 에서 개발자 옵션 킨 다음 내부앱 공유 옵션 활성화 시켜주어야 함
공개 테스트는 링크가 있으면 누구나 접근 (한번이라도 접근한 핸드폰엔 구글 플레이 검색 및 설치 모두 가능) 그 전엔 불가
또한 비공개 테스트 / 공개 테스트는 이용 약관, 등급 분류, 소개 이미지 등 사전작업 필요
AAB 업로드 오류
![]() |
![]() |
![]() |
![]() Package game Data inside .apk 비활성화 |
![]() 다른 버전 코드 |
![]() 이미 GooglePlayConsole에 올린 버전보다 높아야 함 (같아도 오류) |
![]() |
![]() ![]() |
![]() androidx.fragment:fragment:1.0.0 |
![]() additions.gradle |
라이브러리에 추가된 App Bundle 삭제
비활성화 되어있는 앱번들 중 보관되지 않은 (트랙 일시중지 등) 사용하지 않는 앱번들 삭제 가능
SDK 34 (Android 14) 사용 할 때, AGDE 디버깅 문제 발생, 혹은 배포용옵션이 아닐 때 바로 종료되는 문제
One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
다음 문서에서 해결
Engine\Build\Android\Java\src\com\epicgames\unreal\GameActivity.java.template
파일에서
해당 라인을
registerReceiver(consoleCmdReceiver, new IntentFilter(Intent.ACTION_RUN));
다음과 같이 길게 변경
try
{
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
targetSdkVersion = packageInfo.applicationInfo.targetSdkVersion;
}
catch (PackageManager.NameNotFoundException e)
{
Log.debug(e.getMessage());
}
if ( targetSdkVersion >= 34 )
{
registerReceiver(consoleCmdReceiver, new IntentFilter(Intent.ACTION_RUN), RECEIVER_EXPORTED);
}
else
{
registerReceiver(consoleCmdReceiver, new IntentFilter(Intent.ACTION_RUN));
}
'언리얼 > Android' 카테고리의 다른 글
Android SDK / AAB / Keystore (0) | 2024.08.14 |
---|---|
언리얼 구글 연동 (2) | 2024.08.09 |
UE5 안드로이드 환경 세팅 (0) | 2023.05.15 |
안드로이드 스튜디오에서 언리얼 프로젝트 디버깅 (0) | 2023.03.21 |