Unity

Unity에서 AdMob과 GPGS SDK 업데이트 시 빌드 오류 해결 방법

정보처리마법사 2025. 2. 2. 20:06
반응형

Unity에서 AdMob과 GPGS SDK 업데이트 시 빌드 오류 해결 방법

 

Unity에서 AdMob과 **Google Play Games Services (GPGS)**를 업데이트할 때 종종 빌드 오류가 발생하곤 합니다. 특히, 플러그인을 단순히 덮어쓰는 방식으로 업데이트하면 충돌이 발생하거나, 의존성 문제가 생길 수 있습니다. 이 글에서는 Library 폴더 삭제로 문제가 해결되는 이유와, 플러그인 업데이트 시 발생하는 문제의 원리를 설명합니다.

 

1. Library 폴더의 역할

Library 폴더는 Unity가 프로젝트의 임시 데이터, 캐시, 그리고 컴파일된 파일을 저장하는 곳입니다.

  • 임시 데이터 및 캐시: Unity는 빌드 속도를 높이기 위해 의존성 파일(예: .dll, .aar, .jar)과 스크립트 메타데이터를 캐시합니다.
  • 컴파일된 스크립트: 프로젝트 내 모든 C# 스크립트를 컴파일하고, 그 결과물을 Library 폴더에 저장합니다.
  • 플러그인 설정: 외부 플러그인(AdMob, GPGS)의 설정 및 임포트된 라이브러리 정보도 이곳에 저장됩니다.

 

2. AdMob과 GPGS 업데이트 시 발생하는 문제

AdMob과 GPGS는 모두 의존성플랫폼 설정이 복잡한 플러그인입니다. 업데이트 시, 다음과 같은 문제들이 발생할 수 있습니다.

1) 중복 의존성 및 버전 충돌

플러그인 파일을 덮어쓰면, 기존 플러그인의 구버전 파일이 남아있을 수 있습니다. 이로 인해 .aar, .jar, .dll 파일의 중복이 발생하거나, 서로 다른 버전의 라이브러리가 충돌할 수 있습니다.

 

예시:

Assets/Plugins/Android/play-services-basement-17.0.0.aar
Assets/Plugins/Android/play-services-basement-18.0.0.aar

 

이처럼 동일한 라이브러리의 다른 버전이 존재하면 빌드 충돌이 발생합니다.

2) External Dependency Manager(EDM) 문제

**External Dependency Manager(EDM)**는 Unity에서 플러그인 간 의존성을 관리하는 툴입니다. 업데이트 후 EDM이 의존성 파일을 제대로 갱신하지 않으면, 이전 버전의 설정이 남아 컴파일 오류가 발생할 수 있습니다.

3) 메타파일(.meta) 문제

Unity는 모든 리소스와 스크립트에 대한 정보를 .meta 파일로 관리합니다. 플러그인을 덮어쓸 때, .meta 파일이 제대로 갱신되지 않으면 플러그인 충돌이나 인식 오류가 발생할 수 있습니다.

 

3. 왜 Library 폴더 삭제로 문제가 해결되는가?

Library 폴더를 삭제하면 Unity는 다음과 같은 과정을 통해 문제를 초기화합니다.

1) 캐시 및 컴파일 데이터 초기화

기존의 오래된 캐시컴파일된 파일이 삭제되면서, Unity는 최신 플러그인 버전과 설정을 기준으로 모든 스크립트를 다시 컴파일합니다.

2) 의존성 및 충돌 제거

남아있던 중복된 .aar, .jar 파일이나 충돌하는 라이브러리가 모두 삭제됩니다. External Dependency Manager가 강제적으로 다시 실행되어 의존성 문제를 자동으로 해결합니다.

3) 메타파일 재생성

삭제된 .meta 파일이 새로 생성되면서, 플러그인과 스크립트의 참조 경로가 정상적으로 갱신됩니다.

 

4. 문제를 최소화하는 방법

1) 플러그인 업데이트 절차 개선

  1. 플러그인 삭제 후 클린 설치: 기존의 AdMobGPGS 플러그인을 완전히 삭제한 후 새로운 버전을 설치합니다.
  2. External Dependency Manager 강제 실행:
    • Assets > External Dependency Manager > Android Resolver > Force Resolve 실행하여 의존성을 정리합니다.
  3. 패키지 매니저 사용: 가능하다면, Unity의 Package Manager를 통해 관리하면 충돌 가능성이 줄어듭니다.

2) Gradle 및 ProGuard 설정 관리

  1. Custom Gradle Template 사용:
    • 플러그인 업데이트 시 mainTemplate.gradle 파일이 꼬일 수 있으므로, 필요 시 업데이트된 템플릿으로 교체합니다.
  2. ProGuard 설정 확인:
    • ProGuard 설정에서 플러그인 관련 클래스 유지 규칙을 확인하여 난독화로 인한 빌드 오류를 방지합니다.

 

결론

Library 폴더 삭제는 Unity에서 발생하는 플러그인 충돌, 캐시 문제, 의존성 오류를 해결하는 효과적인 방법입니다. 플러그인 업데이트 시 중복 파일 제거, EDM 강제 실행, 메타파일 갱신을 통해 문제를 사전에 예방할 수 있습니다.

이 과정을 참고하면 앞으로 플러그인 업데이트 시 더 안정적으로 프로젝트를 관리할 수 있습니다! 🚀

반응형