2024. 12. 24. 15:17ㆍ유니티 unity
최근 Unity 6로 업그레이드한 뒤, Android 빌드에서 오류가 발생하는 경우가 많습니다. 특히 구글 애드몹(AdMob)이나 파이어베이스(Firebase) 같은 광고·분석 플러그인을 사용하는 프로젝트라면 ‘릴리스 빌드가 안 된다’, ‘충돌 메시지가 뜬다’ 등의 문제를 겪으실 수 있는데요. 이 오류는 **AGP 8.3.0(Android Gradle Plugin)**과 일부 구글 라이브러리 사이에서 발생하는 충돌이 원인으로 지목되고 있습니다.
AGP(Android Gradle Plugin)란?
- AGP(Android Gradle Plugin): 안드로이드 앱을 빌드·패키징·배포하기 위해 구글에서 제공하는 Gradle 플러그인입니다.
- Unity에서 안드로이드 APK 또는 AAB를 빌드할 때도 내부적으로 이 Android Gradle Plugin을 사용해 빌드를 진행합니다.
어떤 문제인가?
Unity 프로젝트에서 Google AdMob, Firebase 등을 추가하면, 라이브러리끼리 리소스 충돌(Resource conflict)이 일어나 빌드가 중단되거나 “Manifest merger failed” 등의 에러가 발생할 수 있습니다.
특히 AGP가 8.3.0 버전대로 업데이트되면서, 안드로이드 애드 서비스(android.adservices.AD_SERVICES_CONFIG) 관련 리소스가 중복 선언되거나 올바르지 않은 형태로 병합되어 문제가 생길 수 있습니다.
해결 방법
여러 가지 방법이 있지만, 가장 간단하게 해결할 수 있는 방법은 AndroidManifest.xml을 적절히 수정하여,
android.adservices.AD_SERVICES_CONFIG의 리소스 충돌을 피하는 것입니다.
- AndroidManifest.xml 파일 생성
Unity 프로젝트에서 Assets/Plugins/Android 폴더에 AndroidManifest.xml 파일을 만듭니다.
(이미 존재하는 경우에는 열어서 내용을 수정하면 됩니다.) - 아래 내용 추가
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<property
android:name="android.adservices.AD_SERVICES_CONFIG"
android:resource="@xml/gma_ad_services_config"
tools:replace="android:resource" />
</application>
</manifest>
- 원인: Unity 6 업그레이드 + AGP 8.3.0 + Google AdMob/Firebase 등에서 발생하는 리소스 충돌
- 해결: AndroidManifest.xml의 <application> 섹션에 android.adservices.AD_SERVICES_CONFIG를 재정의 (tools:replace)하여 충돌을 방지
애드몹이나 파이어베이스를 사용하는 모바일 프로젝트라면, 안드로이드 빌드 시 버전 호환성이나 리소스 충돌 문제를 종종 경험하게 됩니다. 따라서 Unity 업데이트 후에는 빌드 에러가 없는지, 필요한 Manifest 설정이 있는지 꼭 확인해야 합니다.
'유니티 unity' 카테고리의 다른 글
Unity에서 JSON 데이터 저장 및 검증: HMACSHA256을 이용한 보안 (0) | 2024.06.12 |
---|---|
unity // 구글플레이 인앱업데이트 안드로이드14 타켓 오류 (1) | 2024.06.09 |
[유니티] 문자열을 이용하여 클래스 인스턴스 생성하기 :상속 관계에서의 동적 클래스 생성 (0) | 2024.03.24 |
유니티(Unity) 오브젝트 풀링 (2) | 2022.09.13 |
유니티(Unity) Job 시스템 사용법-1 (0) | 2022.08.23 |