본문 바로가기

💻 내 소개 안녕하세요 엄청짱 프로그래머 손다빈 입니다.
  • 나이 : 96년생
  • 특이사항 : MZ세대, INFJ, 오른손잡이, 아이폰 유저
  • 좋아하는 음식 : 햄버거피자치킨솥뚜껑삼겹살떡볶이오튀김밥
  • 취미 : 개발, Programming, 코딩, 프로그래밍, Coding

🥷기술
Unity
Godot
Cpp
Javascript
D3
Vue

🐱 우리집 고양이 소개
츄르 먹은 후 츄르 먹기 전
  • 이름 : 콜라
  • 나이 : 8살
  • 종 : Nado moreum

📱 개인 프로젝트
🏢 참여한 프로젝트
빌런즈 Life is Pair 도씨어부키우기 직장상사혼내주기 서바이벌빙고 SlitherCoin

🌱 내 잔디밭

API Level 31 이상 앱 업로드시 android:export 이슈 본문

글 묶음/내 밥줄 Unity, C#

API Level 31 이상 앱 업로드시 android:export 이슈

초긍정 개발자 다빈맨 2022. 8. 13. 16:16

올해 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#' 카테고리의 다른 글

횡스크롤 뷰 2D 게임 강 셰이더 만들기  (1) 2023.12.17
싱글톤 줄이기  (1) 2023.09.27
Effective C# 요약  (0) 2022.11.20
유니티 UGUI 기초 정리  (4) 2020.06.29