본문 바로가기

Unity/Unity3D_MyProject

[Unity/유니티] 인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 APK 또는 Android App Bundle을 업로드했습니다. Android 12 이상에는 이 ..

○문제 발생

- 앞선 블로그 글에 이어 구글 개발자 콘솔에 빌드한 유니티 abb파일을 업로드하려하니 아래와 같은 에러가  발생하였다.

 

"인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 APK 또는 Android App Bundle을 업로드했습니다. Android 12 이상에는 이 파일을 설치할 수 없습니다. 참조: developer.android.com/about/versions/12/behavior-changes-12#exported"

 

 

 

 

○문제 해결

  1. 유니티 프로젝트에서 Project Setting - Publishing Settings 아래 목록의 Build 목록 중 Custom Main Manifest 부분을 체크 해준다

  2. 그러면 프로젝트 내의 Asset 폴더 하위 Plugins 폴더 하위 Android 폴더에 AndoridManifest.xml파일이 활성화 되어 나타나게 된다.

  3. 위 xml 파일속 코드 중에서 <activity></activity> 속성 사이에

android:exported="true"

 를 추가해준다.

 

 

 

※AndoridManifest.xml 파일 내부 코드 전문을 보면 아래와 같으니 코드 삽입 위치를 다시 한번 보고 그 위치에 위 

android.exproted = "true"코드를 삽입하면 된다.

<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
    package="com.unity3d.player"
    <application>
        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector"
                  android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application>
</manifest>

 

4. 이 후 다시 재빌드 하고 구글개발자 콘솔에 번들에 업로드 해보면 정상적으로 업로드 된다.