1. 프로젝트 생성
2. 테스트 가상 기기 생성
필자는 Q Api를 선택하고 기기는 Pixel 5를 선택하였습니다.
3. 구글 로그인
- 구글 firebase 접속 후 프로젝트 생성
Android 패키지 이름에는 AndroidManifest.xml의 <manifest package=" ">안의 Android 패키지 이름을 작성한다.
앱 닉네임은 말 그대로 앱을 구분할 수 있는 닉네임을 입력하면 된다.
디버그 서명 인증서 SHA-1은 Google 로그인 과정에서는 선택사항이 아닌 필수사항이다.
이후 파이어베이스 공식 레퍼런스를 참고하여 구글로그인 소스코드를 작성할 것
-- sha-1 키 등록 방법
1) cmd에서 keytool을 사용한다.
[mac]
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
[window]
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
- 비밀번호를 등록하지 않았을 경우 엔터키를 누른다.
- 원라인 커맨드로 입력한다.
2) gradle's signing report를 사용한다.
./gradlew signingReport
- 첫 번째 명령어를 썼더니 keytool에서 certificate chain length:0라는 결과가 나왔다.
SHA 인증서도 만들어보고 1번이 가능하게 별의별 방법을 다 써보다가 두 번째 명령어를 사용해 SHA 인증서 지문을 찾았다.
첫 번째 방법이 유명해서 signing report는 신경도 안 썼는데 유레카
3) Gradle 뷰에서 'Tasks → android → signingReport'경로를 클릭한다.
이 방법은 gradle 뷰가 없어서 안 써봤다.
4) key 생성
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000
--- 그래도 키스토어 생성이 안될때
구글 로그인이나 앱 초대와 같은 특정 구글 플레이의 서비스는 SHA-1 인증서를 요구한다~~ 뭐 이런 이야기네요.
그 다음 확인해야할 부분은 C:\Users\사용자이름\.android 폴더에 있는 debug.keystore 이것입니다. 이 녀석을 이용해서 우리는 SHA-1 인증서를 발급받을 수 있습니다.
debug.keystore를 실행하기 위해서 터미널(windows의 경우 cmd)을 켜서 해당 위치로 이동해줍니다.
![](https://blog.kakaocdn.net/dn/bOhOmJ/btr5NKE0akF/TC8VIUI4D6RmDs00m95laK/img.png)
(위 부분에서 Seonwoo 부분이 사용자 이름이 되는 부분입니다. 본인 PC의 사용자 이름을 확인해주세요.)
그 다음 구글 공식 문서에 있는 아래의 명령어를 복사한 다음 붙여넣기 해줍니다.
![](https://blog.kakaocdn.net/dn/cxRhHr/btr5M7HvSKp/xFpXdgAaHvhkKDdeMQ4v30/img.png)
그럼 위와 같이 비밀번호를 입력하라는 문구가 나옵니다. 우리는 비밀번호를 설정한 적이 없을 것이기 때문에 (만약 이전에 하셨다면 그 비밀번호를 입력하시면 되겠죠.) 그냥 엔터를 쳐주시거나 굳이 원하신다면 기본 비밀번호인 "android"를 입력해주면 된다고 합니다.
- 파이어베이스 연동 방법
build.gradel(project)로 오면 아래 그림과 같이 가이드와 달라서 당황하게 될 것이다. 범블비 버전으로 업데이트 되면서 세부적인 내용은 settings.gradle에서 다룬다고 한다. 신경 쓸 필요 없이 build.gradle(project)에 아래처럼 코드를 추가해준다.
// build.gradle(proj)
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.10'
}
}
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}
// 이부분은 필요 없을 수도 있음
task clean(type: Delete) {
delete rootProject.buildDir
}
그리고 Sync Now를 누르면 싱크가 완료된다.
이후 build.gradle(app)에서 진행하는 건 그대로 적어 사용하면 된다.
주의할 것은 위 사진에선 4.3.10 버전을 넣으라고 했지만 난 4.3.8을 넣었다.
왜냐면 구글 로그인 시 "R.string.default_web_client_id" 라는 문자열을 사용해야 하는데, 4.3.10 에선 이 문자열을 인식할 수 없는 에러가 발생할 수 있다. 4.3.8로 버전을 낮추면 정상 작동하니 4.3.8로 진행한다. 버전을 낮춘다고 FCM 관련 문제도 발생하지 않는다.
이후 앱 수준 gradle에 나머지 의존성을 복붙해준다. 반드시 코틀린을 선택한 후 나타나는 의존성들을 붙여넣기한다. 아래에서 2번째 줄까지는 내가 임의로 추가한 의존성이다.
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'com.google.gms.google-services' // <- 이 문장만 추가한다
}
.
.
.
implementation platform('com.google.firebase:firebase-bom:30.0.1')
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.android.gms:play-services-auth:20.2.0'
implementation 'com.google.firebase:firebase-auth-ktx:21.0.4'
이제 설정은 끝났다.