유니티로 게임 만들다보면 플러그인을 추가해서 빌드하는 경우
유니티 버전을 올리고 플러그인도 버전을 올리는 환경에서는
다양한 처음 보는 오류들이 많이 등장하게 되는데 오늘은 여러가지 오류들 가운데 최근 admob plugin 을 추가하면서 생긴 오류를 수정하는 방법을 다뤄보겠습니다.
기존 프로젝트는 Unity2020.3 으로 되어있었고 Unity2021.3 로 업그레이드 이후 admob 플러그인을 추가하였습니다.
미디에이션으로 UnityAds, Pangle, DT Exchange, Mintergral, Audience Network 등 총 8개를 추가하여서 여러가지 문제가 많았는데, 모두 해결하였습니다.
동일한 상황에서 오류 발생 시 아래와 같이 차례대로 진행해보시고 잘 안되면 유니티 질문 답변 게시판에 문의 남겨주세요.
** 빌드 오류 대응
* What went wrong:
Execution failed for task ':launcher:bundleReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
** 조건
Google Mobile Ads Unity Plugin v8.6.0
Unity2020.3 -> Unity2021.3 LTS
안드로이드 빌드
Google Mobile Ads Unity Plugin 설치
먼저 애드몹 유니티 플러그인 사이트에 접속하여 플러그인을 다운받습니다.
https://github.com/googleads/googleads-mobile-unity/releases 에서 Assets 에 있는 GoogleMobileAds-v8.6.0.unitypackage 를 다운받습니다.
다운받은 플러그인을 작업하고 있는 유니티 프로젝트에 임포트를 합니다.
Google Mobile Ads Unity Plugin 설정
Unity 상단 메뉴 -> Assets -> Google Mobile Ads -> Settings 을 선택하면
Admob 사이트에서 생성한 앱 ID 를 입력 할 수 있는 화면이 인스펙터창에 나타납니다.
Admob 사이트에서 생성한 앱 ID 를 OS 별로 각각 입력해줍니다.
Setup Project Setting
유니티 Project Setting 윈도우를 열고 사이드 메뉴에서 Player 를 선택한 뒤 Publishing Settings 를 수정해줍니다.
Custom Base Gradle Template 와 Custom Gradle Properties Template 옵션을 켜주시면,
프로젝트의 Assets/Plugins/Android 폴더에 baseProjectTemplate.gradle 파일과 gradleTemplate.properties 파일이 생성되어 있을 것입니다.
baseProjectTemplate.gradle 파일 수정
기본적인 유니티 세팅으로는 최신 admob 플러그인이 안드로이드에서 빌드가 되지 않습니다.
따라서 baseProjectTemplate.gradle 파일을 아래와 같이 수정합니다.
복붙하셔도 되고 classpath ‘com.android.tools.build:gradle:x.x.x’ 부분을 4.2.2 로 수정하셔도 됩니다.
allprojects {
buildscript {
repositories {**ARTIFACTORYREPOSITORY**
google()
jcenter()
mavenCentral()
}
dependencies {
// If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity
// See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html
// See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
// To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version
classpath 'com.android.tools.build:gradle:4.2.2'
**BUILD_SCRIPT_DEPS**
}
}
repositories {**ARTIFACTORYREPOSITORY**
google()
jcenter()
mavenCentral()
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
유니티에서 친절하게 저 부분을 수정하게 되면 Gradle 버전을 맞춰야된다고 알려주네요.
Gradle 다운로드
https://gradle.org/releases/ 사이트로 이동하여 v7.2 버전 binary를 다운로드하여
압축 해제를 합니다.
압축 해제 폴더 위치를 적절한 곳으로 설정하여 기억해둡니다.
(EX : C:\gradle\gradle-7.2 )
유니티에서 다운받은 Gradle 연결
유니티 Preferences 윈도우를 열고 External Tools 의 Gradle Path를 변경해줍니다.
Gradle Installed with Unity 부분을 체크 해제 한 후
오른쪽의 Browse 를 선택하여 좀 전에 압축 해제 해둔 Gradle 7.2 폴더를 선택해줍니다.
Android Resolver -> Force Resolve
이제 거의 준비가 다 되었습니다.
마지막으로 안드로이드 라이브러리들을 자동으로 불러와줄 리졸버를 실행합니다.
상단 메뉴 -> Assets -> External Dependacy Manager -> Android Resolver -> Force Resolve
리졸브를 실행하면 로딩 아이콘이 생기고 몇 초 정도 기다리면 아래와 같은 성공 창이 나타납니다.
아래와 같이 성공하지 못하고 fail 이 발생한 경우 console 윈도우를 살펴보고 오류를 수정해준 후 다시 시도하면 됩니다.
빌드
축하합니다!
모두 완료하였습니다.
이제 안드로이드 빌드를 제작할 시간이 되었습니다.
빌드 오류가 발생하여 도움이 필요하신 경우