https://youtu.be/Ss0QCEp6JyY?si=wk4tMgOwJTKTqBwd
이 영상 보고 그대로 따라했다
https://github.com/googlesamples/google-signin-unity/releases
Releases · googlesamples/google-signin-unity
Google Sign-In API plugin for Unity game engine. Works with Android and iOS. - googlesamples/google-signin-unity
github.com
사용한 패키지는 이거랑 파이어베이스 유니티 SDK
정말 온갖 오류를 다 봐서..
1: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':launcher:checkReleaseAarMetadata'. > Could not resolve all files for configuration ':launcher:releaseRuntimeClasspath'. > Could not find com.google.firebase:firebase-app-unity:12.1.0. Searched in the following locations: - https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-app-unity/12.1.0/firebase-app-unity-12.1.0.pom
System.IO.FileNotFoundException: Could not load file or assembly 'Google.JarResolver, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. File name: 'Google.JarResolver, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null' at Firebase.Editor.AndroidSettingsChecker..cctor () [0x00015] in /Users/runner/work/firebase-unity-sdk/firebase-unity-sdk/editor/app/src/AndroidAPILevelChecker.cs:37 UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes (System.Type[])
android-35\android.jar: D8: java.lang.NullPointerException
Multiple task action failures occurred:
unity Execution failed for task ':unityLibrary:processReleaseManifest'. > A failure occurred while executing cohttp://m.android.build.gradle.tasks.ProcessLibraryManifest$ProcessLibWorkAction > Manifest merger failed with multiple errors, see logs
등등.. 진짜 많았고 구글링해서 나온건 다해봤는데도 빌드가 계속 실패했다 gradle 다시깔고 경로도 바꾸고 템플릿도 다 커스텀 생성해서 나오는대로 다 넣어보고....프로퍼티도 계속 건들고 했지만 안됐다
결국 해결은 했다,,
빌드 실패 때문에 수정한 부분은 다 돌리고 초기화한 상태에서 위 패키지 두 개만 깐 상태로 시작
일단 Firebase.auth 패키지를 넣으면 자동으로 생성되는 ExternalDependencyManager 폴더랑 Firebase 폴더랑 그냥 다 삭제했다
그리고
https://developers.google.com/unity/archive?hl=ko#external_dependency_manager_for_unity
Unity용 Google 패키지 다운로드 | Google for Developers
이 보관 파일에는 Unity용 Google 공식 패키지의 현재 및 이전 버전이 포함되어 있습니다. 이러한 패키지를 Unity 프로젝트로 가져오는 방법은 여기를 참고하세요. Android Android App Bundle com.google.android.
developers.google.com
여기서

이거 다운받아서 넣고, FirebaseAuth 패키지 재설치(ExternalDependencyManager 폴더는 체크해제함)

그러고 나서 빌드하면 중복 어쩌구하면서 에러가 잔뜩 뜸
여기서 두 개 + gradle properties template 를 체크해서 커스텀 파일을 생성 시켜주고
저 경로에 생성된 파일 mainTemplate.gradle, launcherTemplate.gradle 에
packagingOptions {
exclude('META-INF/kotlinx_coroutines_core.version')
}
}
을 붙여넣는다
위치는
mainTemplate.gradle은 상단부터
apply plugin: 'com.android.library'
**APPLY_PLUGINS**
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
**DEPS**}
android {
packagingOptions {
exclude('META-INF/kotlinx_coroutines_core.version')
}
ndkPath "**NDKPATH**"
launcherTemplate.gradle은 하단부터
**BUILT_APK_LOCATION**
bundle {
language {
enableSplit = false
}
density {
enableSplit = false
}
abi {
enableSplit = true
}
}
packagingOptions {
exclude('META-INF/kotlinx_coroutines_core.version')
}
}**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP**
그리고 gradleTemplate.properties 하단에
android.useAndroidX=true
android.enableJetifier=true
추가하기
근데 이거는 2일 전에 시도했던건데 이거만 바꿔서는 해결이 안됐었음
여기서 추가로
안드로이드 플러그인 폴더 보면(Asset-> ExternalDependencyManager-> Android Resolver -> Resolve 누르면 자동 생성됨)

이런게 잔뜩 있는데 이중에
androidx.annotation.annotation-1.0.0.jar
androidx.arch.core.core-common-2.0.0.jar
androidx.collection.collection-1.0.0.jar
androidx.lifecycle.lifecycle.-common-2.0.0.jar
org.jetbrains.kotlinx.kotlinx-coroutines-core-jvm-1.7.1.jar
이렇게 다섯개 삭제해야함(**먼저 Android Resolver 들어가서 자동 생성 꺼야 다시 안생김**)

그러고 나서 빌드하니까 3일만에 드디어 빌드가 됐다..
++
여기서 빌드하고 켜진 앱이 강제종료 되는 현상이 발생했따 ㅎ..
Asset-> ExternalDependencyManager-> Android Resolver -> Resolve
누르고 다시 빌드하니까 신기하게도 정상적으로 빌드됨
'Unity' 카테고리의 다른 글
| [Unity] JoyStick 움직임이 버벅거리는 현상 (0) | 2024.07.15 |
|---|---|
| [Unity] Sprite Atlas를 Addressable로 불러오기 (0) | 2024.07.08 |
| [Unity] Android Script Debugging (0) | 2024.07.05 |
| [Unity] Spine Atlas를 유니티에서 수동으로 합치기 (0) | 2024.07.03 |
| [Unity] TMP InputField에서 마지막 글자가 짤리는 현상 (0) | 2024.02.17 |