- 나이 : 96년생
- 특이사항 : 조금씩 늙어가고 있음
- 좋아하는 음식 : 햄부기, 치킨, 고기
🥷기술
🐱 우리집 고양이 소개


- 이름 : 콜라
- 나이 : 14년생
- 종 : Nado moreum
📱 개인 프로젝트
🏢 참여한 프로젝트
🌱 내 잔디밭
API Level 31 이상 앱 업로드시 android:export 이슈 본문
올해 11월 이후부터 APK를 업로드할 때 API Level 31 이상으로 빌드해야만 플레이 스토어에 업로드할 수 있습니다.
자세한 내용은 https://developer.android.com/google/play/requirements/target-sdk 참고 하시면 됩니다.
그런 사정으로 신규 앱은 이제부터 API Level 31 이상으로 유니티에서 빌드 설정을 바꾸어야 합니다.
이제 빌드된 앱을 플레이 스토어에 업로드를 시도하면 다음 에러가 나올 수 있습니다.
인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 APK 또는 Android App Bundle을 업로드했습니다. Android 12 이상에는 이 파일을 설치할 수 없습니다.
API Level 31 이상 부터는 AndroidManifest.xml 에서 하위에 <intent-filter> 가 달려있는 <receiver>, <activity> 의 android:export 를 명시해주어야 하기 때문 입니다.
1. 첫번째 해결 방법
[Player Settings -> Project/Player] 의 아래에 Custom Main Manifest 를 체크해서 활성화 해주세요.
생성된 Assets\Plugins\Android\AndroidManifest.xml 파일을 열어서 수정을 해야합니다.
android:exported="true"
android:exported 속성을 true 로 명시적으로 추가해줍니다. 이 상태에서 다시 빌드 후 시도해보세요!
2. 두번째 해결 방법 (첫번째에서 해결 안될 시)
첫번째 방법으로 빌드 후에 스토어에 업로드 했을 때도 같은 문제가 발생한다면 사용하고 있는 SDK 의 AndroidManifest 에서 android:exported 속성 값이 명시되어 있지 않을 수 있습니다. 명시되지 않은 구성요소가 있는지 확인하려면 APK (aab 말고) 를 먼저 빌드하고 빌드된 APK 를 이용해서 완성된 최종본 AndroidManifest.xml 값을 얻어서 확인해보면 됩니다.
https://github.com/AndnixSH/APKToolGUI
위 링크에서 툴을 다운받아 사용하시면 APK 에서 AndroidManifest.xml 을 추출할 수 있습니다.
추출된 AndroidManifest.xml 을 열어서, <intent-filter> 를 검색해보세요. <intent-filter> 태그를 하위에 달고있는 <receiver> 혹은 <activity> 태그의 android:exported 속성 값이 없는애들을 찾아줍니다. (위 처럼 빠진애들이 있음)
그리고 해당하는 <receiver> 혹은 <activity> 를 Custom Main Manifest 를 체크했을 때 생성된 AndroidManifest.xml 에 복사해서 붙여넣고 다음 속성을 명시적으로 추가해줍니다.
android:exported="false" tools:replace="android:exported"
이 상태에서 다시 빌드후 업로드하면 됩니다.
'글 묶음 > 내 밥줄 Unity, C#' 카테고리의 다른 글
Unity Jenkins를 이용한 빌드 자동화 구축 과정 정리 (0) | 2025.02.16 |
---|---|
횡스크롤 뷰 2D 게임 강 셰이더 만들기 (2) | 2023.12.17 |
싱글톤 줄이기 (1) | 2023.09.27 |
Effective C# 요약 (0) | 2022.11.20 |
유니티 UGUI 기초 정리 (4) | 2020.06.29 |