unity6 빌드에러 "property#android.adservices.AD_SERVICES_CONFIG@resource=@xml/gma_ad_services_config` in com.google.android.gms:play-services-measurement-api:22.1.2 collides with another value"

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의 리소스 충돌을 피하는 것입니다.

  1. AndroidManifest.xml 파일 생성
    Unity 프로젝트에서 Assets/Plugins/Android 폴더에 AndroidManifest.xml 파일을 만듭니다.
    (이미 존재하는 경우에는 열어서 내용을 수정하면 됩니다.)
  2. 아래 내용 추가

 

<?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 설정이 있는지 꼭 확인해야 합니다.