Debug & Think

[Unity] 구글 로그인 연동 시도 -1(완료 포함) 본문

카테고리 없음

[Unity] 구글 로그인 연동 시도 -1(완료 포함)

J.Note 2025. 8. 12. 19:06

 

 

본 내용은 Unity로 구글 로그인 적용하면서 생겼던 일들을 적어두면서 진행했던 내용이다.

 

개발하면서 적은 노션형식 그대로 진행 가져와서 정리한 내용이며,

대략 1달 정도 삽질하며 노력한 것을 기록하기 위한 글이다.

 

 

연동 적용된 방법은  ⬇️ 아래 링크에서 확인할 수 있다.

Unity 구글 로그인 연동 적용(Google Sign-In, Firebase Auth)

 

Unity 구글 로그인 연동 적용(Google Sign-In, Firebase Auth)

Unity 2022.3.3 + Firebase Auth + Google Sign-In 연동 기록1. 개발 환경Unity 버전: 2022.3.3f1 (LTS)Firebase Auth Unity 패키지: FirebaseAuth_11.6.0Google Sign-In 플러그인: google-signin-plugin-1.0.4 (Parse 폴더 제외 후 임포트)빌드

debug-think.tistory.com


 

25.07.19~20

Third party

*"Third party" (서드파티)**는 **'제3자'**를 의미하며, 주로 IT 업계에서 원천 기술을 보유하지 않은 회사가 해당 기술과 호환되는 상품을 출시하거나 파생 상품을 생산하는 회사를 지칭합니다. 즉, 서드파티는 다른 회사의 제품에 사용되는 소프트웨어나 하드웨어를 개발하는 회사를 말합니다. 프로그래밍에서는 플러그인이나 라이브러리 등을 만드는 회사를 의미하기도 합니다

 

 

구글 파이어베이스로 로그인 시도

  • 구글로 로그인

이러면 구글 로그인 라이브러리 관련 파일들 설치 완료

  • 파이어베이스 로그인

2.

SHA-1 필요!!!! UNITY 설정

안드로이드

 

프로퍼티
설명
Alias
키 식별 이름입니다.
Password
키에 사용할 비밀번호입니다.
Confirm password
키에 사용할 비밀번호를 확인하는 프로퍼티입니다. 이 프로퍼티 값을 Password와 동일하게 설정합니다.
Validity (years)
키의 유효 기간(년 수)입니다.이는 애플리케이션을 관리할 것으로 예상되는 기간을 초과해야 동일한 키를 사용하여 애플리케이션 업데이트에 서명할 수 있습니다.기본 유효 기간은 50년입니다.
First and Last Name
이름과 성을 입력합니다.
Organizational Unit
소속 조직의 부서를 입력합니다.
Organization
애플리케이션을 관리하는 조직을 입력합니다. 이 부분에 회사 이름을 넣기도 합니다.
City or Locality
거주하는 시/군/구를 입력합니다.
State or Province
거주하는 광역시/도를 입력합니다.
Country Code
소속된 국가 코드를 입력합니다.

Unity Technologies 키스토어 관리자 창 레퍼런스 - Unity 매뉴얼

이 경고 메시지는 릴리즈 빌드를 하면서 64비트(ARM64) 지원이 빠져 있어서 생긴 경고 입니다.

2021년부터 Google Play 스토어는 64비트 지원을 필수로 요구하고 있기 때문에 꼭 해결해야 합니다.

  • 본인이 생성한 keysotre의 파일위치로 이동.

자바 깔려지있지 않아서 JDK 다운,

 

Java 없이 열 수 없는 이유

.keystore는 암호화된 바이너리 포맷입니다:

  • 일반 텍스트로 열 수 없음
  • 암호화된 저장 구조 때문에 keytool 또는 호환 도구 없이는 내부 구조 파악 불가

SHA 확인키스토어를 열어보기 위해서는 keytool을 사용해야 하는데 유니티 에디터를 설치하면 포함되어 있기 때문에 에디터 설치 경로에서keytool.exe 파일이 위치한 경로에서 명령 프롬프터를 켜서 'keytool -list -keystore [키스토어 경로]' 를 실행한다.

현재 실행한 unity 버전이 있는 폴더찾고


C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin

OpenJDK → bin 폴더에서 터미널로 열기

그런 다음 본인 keystore( user.keystore)의 경로를

keytool -list -keystore 뒤에 입력

"C:\Users\gksmf\Desktop\Project\UnityThairdParty\user.keystore”

Copy
keytool -list -keystore C:\Users\gksmf\Desktop\GitFork\IdleGame\user.keystore

최종. 다음으로 본인의 입력한 비밀번호를 적으면 되는데

적어도 입력되는 것처럼 보이지 않지만,

당황하지말고 입력 완료되고 엔터를 치면 밑에처럼 결과가 나온다.

A7:81:1E:E0:1C:20:A9:64:BE:B5:C5:9D:37:8B:C5:2A:D3:24:A4:CC:AB:00:1E:51:0D:64:C2:31:45:9D:2F:E0

파이어베이스 인증 SDK 설치

2. Google-Signin-Unity

 

"External Dependency Manager" 플러그인의 사용 정보를 Google에 공유할래?"

라는 물음입니다.

  • 이 플러그인은 Unity에서 Android/iOS용으로 외부 라이브러리(AAR, Jar, Gradle) 의존성을 자동으로 관리해주는 도구입니다.
  • Google은 이 도구가 어떻게 사용되는지 익명 분석 데이터(analytics) 를 받아 제품 개선에 사용하겠다는 의도입니다.

굳이 안해도 된다

External Dependency Manager(구 Google Play Services Resolver)가 Android 라이브러리들 간의 충돌을 자동으로 감지하고 해결하려고 한다 는 의미입니다.

enable로 진행?

json 다운로드

이름 적용

Google Cloud 들어각면 프로젝트에서 파이어베이스에서 만든 프로젝트가 있다.

Copy
이 중에서 사용자 인증 정보 항목에서 OAuth 2.0 클라이언트 ID를 사용해서 유니티에서 접속을 시도한다.

출처:

https://b-note.tistory.com/150

[기록:티스토리]

인증 에러가 계속 생겼는데 Assets/ 또는 Assets/Plugins/Android 폴더에 있어야 됐다.

  • 빌드안하고 로그인하려고 해서 문제.
  • 빌드오류에서 비밀번호 안써서 빌드실패

에러

Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\32.0.0\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-31\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-32\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\package.xml. Probably the SDK is read-only
> Task :unityLibrary:preBuild UP-TO-DATE
> Task :launcher:preBuild UP-TO-DATE
> Task :unityLibrary:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:FirebaseApp.androidlib:preBuild UP-TO-DATE
> Task :launcher:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:FirebaseApp.androidlib:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:FirebaseApp.androidlib:compileReleaseAidl NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:packageReleaseRenderscript NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:generateReleaseResValues
> Task :unityLibrary:FirebaseApp.androidlib:generateReleaseResources
> Task :launcher:generateReleaseBuildConfig UP-TO-DATE
> Task :launcher:javaPreCompileRelease UP-TO-DATE
> Task :launcher:generateReleaseResValues UP-TO-DATE
> Task :launcher:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :launcher:extractDeepLinksRelease UP-TO-DATE
> Task :launcher:extractProguardFiles UP-TO-DATE
> Task :launcher:mergeReleaseJniLibFolders UP-TO-DATE
> Task :unityLibrary:FirebaseApp.androidlib:packageReleaseResources
> Task :unityLibrary:FirebaseApp.androidlib:parseReleaseLocalResources
> Task :unityLibrary:FirebaseApp.androidlib:generateReleaseBuildConfig
> Task :unityLibrary:FirebaseApp.androidlib:javaPreCompileRelease
> Task :unityLibrary:FirebaseApp.androidlib:mergeReleaseJniLibFolders
> Task :unityLibrary:FirebaseApp.androidlib:mergeReleaseNativeLibs NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:stripReleaseDebugSymbols NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:processReleaseManifest
> Task :unityLibrary:FirebaseApp.androidlib:copyReleaseJniLibsProjectAndLocalJars
> Task :unityLibrary:FirebaseApp.androidlib:mergeReleaseShaders
> Task :unityLibrary:FirebaseApp.androidlib:compileReleaseShaders NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:FirebaseApp.androidlib:packageReleaseAssets
> Task :unityLibrary:FirebaseApp.androidlib:prepareLintJarForPublish
> Task :unityLibrary:FirebaseApp.androidlib:prepareReleaseArtProfile
> Task :unityLibrary:FirebaseApp.androidlib:processReleaseJavaRes NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:writeReleaseAarMetadata
> Task :unityLibrary:FirebaseApp.androidlib:extractDeepLinksRelease
> Task :unityLibrary:FirebaseApp.androidlib:mergeReleaseJavaResource
> Task :unityLibrary:FirebaseApp.androidlib:compileReleaseLibraryResources
> Task :unityLibrary:FirebaseApp.androidlib:bundleLibResRelease NO-SOURCE
> Task :unityLibrary:FirebaseApp.androidlib:writeReleaseLintModelMetadata
> Task :unityLibrary:FirebaseApp.androidlib:copyReleaseJniLibsProjectOnly
> Task :unityLibrary:FirebaseApp.androidlib:generateReleaseRFile
> Task :unityLibrary:mergeReleaseJniLibFolders
> Task :unityLibrary:compileReleaseAidl NO-SOURCE
> Task :unityLibrary:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:generateReleaseBuildConfig UP-TO-DATE
> Task :unityLibrary:generateReleaseResValues UP-TO-DATE
> Task :unityLibrary:generateReleaseResources UP-TO-DATE
> Task :unityLibrary:packageReleaseResources UP-TO-DATE
> Task :unityLibrary:parseReleaseLocalResources UP-TO-DATE
> Task :unityLibrary:processReleaseManifest UP-TO-DATE
> Task :unityLibrary:FirebaseApp.androidlib:compileReleaseJavaWithJavac
> Task :launcher:compileReleaseAidl NO-SOURCE
> Task :launcher:checkReleaseDuplicateClasses
> Task :unityLibrary:FirebaseApp.androidlib:bundleLibCompileToJarRelease
> Task :unityLibrary:FirebaseApp.androidlib:extractReleaseAnnotations
> Task :unityLibrary:FirebaseApp.androidlib:mergeReleaseGeneratedProguardFiles
> Task :unityLibrary:FirebaseApp.androidlib:mergeReleaseConsumerProguardFiles
> Task :unityLibrary:FirebaseApp.androidlib:syncReleaseLibJars
> Task :unityLibrary:FirebaseApp.androidlib:bundleReleaseLocalLintAar
> Task :unityLibrary:FirebaseApp.androidlib:bundleLibRuntimeToJarRelease
> Task :unityLibrary:FirebaseApp.androidlib:createFullJarRelease
> Task :unityLibrary:javaPreCompileRelease UP-TO-DATE
> Task :unityLibrary:mergeReleaseShaders UP-TO-DATE
> Task :unityLibrary:compileReleaseShaders NO-SOURCE
> Task :unityLibrary:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:generateReleaseRFile
> Task :unityLibrary:packageReleaseAssets
> Task :unityLibrary:packageReleaseRenderscript NO-SOURCE
> Task :unityLibrary:prepareLintJarForPublish UP-TO-DATE
> Task :unityLibrary:prepareReleaseArtProfile UP-TO-DATE
> Task :unityLibrary:processReleaseJavaRes UP-TO-DATE
> Task :unityLibrary:mergeReleaseJavaResource UP-TO-DATE
> Task :unityLibrary:writeReleaseAarMetadata UP-TO-DATE
> Task :unityLibrary:extractDeepLinksRelease UP-TO-DATE
> Task :unityLibrary:compileReleaseLibraryResources UP-TO-DATE
> Task :unityLibrary:bundleLibResRelease UP-TO-DATE
> Task :unityLibrary:writeReleaseLintModelMetadata UP-TO-DATE
> Task :unityLibrary:extractReleaseAnnotations
> Task :launcher:compileReleaseRenderscript NO-SOURCE
> Task :launcher:generateReleaseResources UP-TO-DATE
> Task :launcher:checkReleaseAarMetadata FAILED
> Task :unityLibrary:mergeReleaseNativeLibs

> Task :unityLibrary:compileReleaseJavaWithJavac

> Task :launcher:mergeReleaseResources
> Task :launcher:desugarReleaseFileDependencies
61 actionable tasks: 38 executed, 23 up-to-date

UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

 

 

 

 

 

 

https://flrjtwjrjt.tistory.com/entry/Unable-to-load-DLL-native-googlesignin-%ED%95%B4%EA%B2%B0%EB%B2%95

 

Unable to load DLL 'native-googlesignin' 해결법

이 문제는 google-signin-support 파일을 로드할 수 없기 때문에 발생하는 문제일 수 있습니다.우선, google-signin-support파일이 있는 아래 폴더로 가줍니다.Assets\GoogleSignIn\Editor\m2repository\com\google\signin\googl

flrjtwjrjt.tistory.com

https://workdiarysometimesnot.tistory.com/104?category=870009

 

유니티)firebase 연동시 오류들

오류1)ios모듈 추가안함 Assembly 'Assets/ExternalDependencyManager/Editor/1.2.175/Google.IOSResolver.dll' will not be loaded due to errors: Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with

workdiarysometimesnot.tistory.com

 

 


DllNotFoundException: Unable to load DLL 'native-googlesignin'

이 에러는 주로 구글 로그인(Unity용 Google Sign-In) 플러그인 설정이나 빌드 환경에서 native 라이브러리(native-googlesignin)를 제대로 찾지 못할 때 발생

1. .srcaar 확장자 문제

  • GoogleSignIn SDK를 임포트하면 폴더 내에 google-signin-support-1.0.4.srcaar(또는 .srcaar) 파일이 남아있는 경우가 많습니다.
  • 해결 방법:

2. settingsTemplate.gradle 경로 수정

  • 외부 종속성 매니저(External Dependency Manager) 또는 안드로이드 리졸버를 실행한 뒤, gradle의 의존성 경로가 잘못 변할 수 있습니다.
  • 해결 방법:

GeneratedLocalRepo vs GoogleSignIn 폴더의 차이

 

 

Dependency 'androidx.credentials:credentials:1.2.0-rc01' requires 'compileSdkVersion' to be set to 34 or higher.

Dependency 'androidx.core:core-ktx:1.9.0' requires 'compileSdkVersion' to be set to 33 or higher.

Compilation target for module ':launcher' is 'android-32'

즉, 사용 중인 라이브러리(예. Google Sign-In, Firebase 등) 중 최소 API 33~34 이상 이 필요한 패키지가 포함되어 있는데, 현재 프로젝트의 compileSdkVersion이 32로 설정 되어 있어 발생하는 오류입니다.

안드로이드 경로들어가면

31,32밖에 없다.

JDK 경로를 복사하고

C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK

시스템환경변수편집 열어서

JAVA_HOME 변수가 없으면 만들고, 있으면 적용하고

 


C:\Program Files\Unity\Hub\Editor\2022.3.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin

위의 경로의 sdkmanager.bat를 찾고

CMD 관리자 권한으로 실행

cd 뒤에 경로 써서 sdkmanager.bat가 위치한 디렉터리로 변경합니다.

아래 명령어를 입력하여 안드로이드 SDK를 설치합니다. 예에서 안드로이드 SDK 34를 설치합니다.

sdkmanager.bat "platforms;android-34"

에러 원인 요약

  • 핵심 메시지:
  • 발생 환경:

이 오류는 Java 9 이상에서 javax.xml.bind (JAXB)이 기본 JDK에 포함되어 있지 않으면서, sdkmanager의 Legacy 버전이 이를 사용하려고 할 때 나타나는 대표적인 문제입니다.

주요 원인

  • Unity가 포함하는 Android SDK와 툴이 **구 버전(Old tools)**이라 최신 Java(JDK 11/17 등)와 호환되지 않음
  • tools\bin\sdkmanager.bat는 사실상 더 이상 공식적으로 지원되지 않으며,
  • Unity 번들 SDK 환경에서는 별도의 패키지 설치, 업데이트 기능이 제한적일 수 있음

 

설명:

  • Jetpack(AndroidX): 구글이 권장하는 새로운 Android 라이브러리 집합입니다. 더 최신이고 유지보수가 잘 되며, 이전 android.support.* 라이브러리들을 대체합니다.
  • API Level 28 이상 필요: AndroidX 라이브러리를 사용하려면 Android API Level 28 이상을 타겟팅해야 합니다.

 


안드로이드 스튜디오에서 36을 최신으로 깔았는데

이번엔 api 33까지만 보이고 36이 보이지 않는다.

🙆‍♂️

현재까지 작업한 건 방향은 맞음, 다만 API 36 하나만 설치한 것이 문제였고, Unity는 중간 버전(API 34, 35) 도 같이 설치돼 있어야 안정적으로 인식합니다.

안드로이드 스튜디오로 나머지 다운.

그래도 인식 안돼서 보니까 lastest까지 선택

 

 


 

적용 완료된 방법은  ⬇️ 아래 링크에서 확인할 수 있다.

Unity 구글 로그인 연동 적용(Google Sign-In, Firebase Auth)

 

Unity 구글 로그인 연동 적용(Google Sign-In, Firebase Auth)

Unity 2022.3.3 + Firebase Auth + Google Sign-In 연동 기록1. 개발 환경Unity 버전: 2022.3.3f1 (LTS)Firebase Auth Unity 패키지: FirebaseAuth_11.6.0Google Sign-In 플러그인: google-signin-plugin-1.0.4 (Parse 폴더 제외 후 임포트)빌드

debug-think.tistory.com