구글 플레이 콘솔에 새로운 버전을 업로드하려 했는데 아래와 같은 오류 메시지가 떴습니다.
"Unity 인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 apk 또는 android app bundle을 업로드했습니다."
Main Manifest.xml을 만들어 사용하면 해결할 수 있습니다.
1) 이미 사용중인 경우 - 사용하던 xml 파일을 열기
2) 사용중이 아닐 경우 - PlayerSettings -> Publishing Setting -> Custom Main Manifest.xml. 체크
activity 속성에 android:exported = "true/false"를 추가해주면 됩니다.
다른 앱과 통신이 필요하다면 true, 필요하지 않다면 false값으로 설정해줍니다.
다시 구글 플레이 콘솔에 앱을 업로드하면 정상적으로 업로드되는 것을 확인할 수 있습니다.
위와 같은 방법으로는 해결되지 않는다! 여전히 같은 오류 메시지가 뜬다! 하시는 분들은 프로젝트 어딘가에 AndroidManifest.xml 파일이 더 있기 때문인데요(그리고 거기에 인텐트 필터를 포함했지만 android:exported 속성을 명시해주지 않은 곳이 존재하기 때문), 이는 병합한 최종 AndroidManifest.xml 파일을 수정해줘야 합니다.
안드로이드 스튜디오에 빌드한 aab파일을 끌어와 아래 경로의 AndroidManifest.xml파일을 확인할 수 있습니다.
안의 내용을 전부 복사해옵니다.
다시 Custom Main Manifest로 생성한 AndroidManifest.xml파일로 돌아와 복사한 내용을 붙여넣기 해줍니다.
<intent-filter>를 포함한 모든 activity, receiver, service의 속성에 android:exported = "true/false"를 추가해줍니다.
이 방법으로 하니 문제없이 파일이 올라간 것을 확인할 수 있었습니다.
Custom Main Manifest.xml을 만들어도, 다른 곳에 있는(예를 들면 구글 애드몹, 파이어베이스, 구글 플레이 서비스 등등..) Manifest.xml과 병합되어 최종 Manifest.xml이 생성되기 때문에 미처 android:exported 속성을 수정하지 못한 부분이 생길 수 있습니다. 빌드한 aab파일에서 병합된 최종 Manifest.xml 파일의 내용을 Custom Main Manifest.xml에 붙여넣기 해주니 문제가 해결됐습니다.
도움이 되셨다면 좋아요 한번씩만 눌러주세요!
'[Unity]' 카테고리의 다른 글
[Firebase] Firebase Database (1) (1) | 2022.04.24 |
---|---|
[Unity Admob] 유니티에 애드몹을 추가한 후, 빌드 이슈 (feat. Gradle build failed) (0) | 2022.04.02 |
[Google Play Console] 구글 플레이 게임 서비스 구현 3)로그인, 대시보드 (3) | 2021.12.16 |
[Google Play Console] 구글 플레이 게임 서비스 연동하는 법 2) Firebase 세팅 (0) | 2021.11.02 |
[Google Play Console] 구글 플레이 서비스 연동하는 법 1) 유니티, 구글 플레이 콘솔 세팅 (0) | 2021.10.27 |