[Unity]

[Google Play Console] Unity 인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 apk 또는 android app bundle을 업로드했습니다.

극꼼 2022. 3. 18. 10:12
반응형


구글 플레이 콘솔에 새로운 버전을 업로드하려 했는데 아래와 같은 오류 메시지가 떴습니다.

 

"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에 붙여넣기 해주니 문제가 해결됐습니다.

 

도움이 되셨다면 좋아요 한번씩만 눌러주세요!

반응형