본문 바로가기

Programming/Projects

[Android]카드게임만들기_프로젝트 셋팅 및 구글로그인

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)을 켜서 해당 위치로 이동해줍니다.

(위 부분에서 Seonwoo 부분이 사용자 이름이 되는 부분입니다. 본인 PC의 사용자 이름을 확인해주세요.)

그 다음 구글 공식 문서에 있는 아래의 명령어를 복사한 다음 붙여넣기 해줍니다.

keytool -list -v -keystore debug.keystore

그럼 위와 같이 비밀번호를 입력하라는 문구가 나옵니다. 우리는 비밀번호를 설정한 적이 없을 것이기 때문에 (만약 이전에 하셨다면 그 비밀번호를 입력하시면 되겠죠.) 그냥 엔터를 쳐주시거나 굳이 원하신다면 기본 비밀번호인 "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'

 

이제 설정은 끝났다. 

728x90