Google๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.


1. Debugging sign ๊ตฌํ•˜๊ธฐ

2. app ๋‚ด์— google์ด ์ œ๊ณตํ•˜๋Š” google-services.json ํŒŒ์ผ ๋„ฃ๊ธฐ


(google service๋ฅผ ์‚ฌ์šฉํ•จ์— ์žˆ์–ด ์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ง„์งœ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด๋„ ๋  ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ์šฉ๋„)

 

๋จผ์ €, Android studio ์—์„œ SHA1 ๋ฅผ ์–ป์–ด๋ณด์ž.

1. View - Tool Windows - Gradle ์„ ํด๋ฆญํ•˜๋ฉด Android studio์˜ ์˜ค๋ฅธํŽธ์— Gradle ์ฐฝ์ด ๋œจ๊ฒŒ ๋œ๋‹ค.

2. [package name] - app - android ์— ๋“ค์–ด๊ฐ€๋ฉด signingReport๋ผ๊ณ  ์žˆ๋Š”๋ฐ ์ด๊ฑธ ์‹คํ–‰์‹œ์ผœ ์ค€๋‹ค.

 

3. debug ์šฉ SHA1๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œ์ถœ๋œ๋‹ค.

4. google-services.json ์„ ๋‹ค์šด๋ฐ›์•„ app ํด๋” ์•„๋ž˜์— ๋ณต์‚ฌํ•ด์„œ ๋„ฃ๋Š”๋‹ค.

5. ๋งŒ์•ฝ build.gradle์— ์•„๋ž˜ ๋‚ด์šฉ์ด ์—†๋‹ค๋ฉด, ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅ ํ›„ sync๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด FirebaseApp.initializeApp(context)๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋ฉด์„œ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

- project level build.gradle

buildscript {
    ...
    }
    dependencies {
		...
        classpath "com.google.gms:google-services:4.3.5"
    }
}

- module level build.gradle

plugins {
    ...
    id 'com.google.gms.google-services'
}

...

dependencies {
    implementation platform('com.google.firebase:firebase-bom:26.5.0')
    implementation 'com.google.firebase:firebase-auth-ktx'
}

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ด ๋๋‚˜์„œ relase ํ›„ google play store์— ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š”

์•ฑ ์„œ๋ช…์ด ํ•„์š”ํ•˜๋‹ค.

์ด๋ฅผ ์œ„ํ•ด์„œ debug๊ฐ€ ์•„๋‹Œ, release key๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

1. app ๋‚ด๋ถ€์— key store๋ฅผ ๋งŒ๋“ ๋‹ค.

 

2. app์˜ build.gradle์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ด๋ฏธ ๋งŒ๋“ค์–ด๋†“์€ key store๋ฅผ ์ง€์ •ํ•œ๋‹ค.

android {
    compileSdkVersion 30

    defaultConfig {
    	...
        }
    }

    signingConfigs {
        release {
            storeFile file('app_key_store')
            storePassword "xxxxxxx!"
            keyAlias "release"
            keyPassword "xxxxxxx!"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

 

3. apk build ๊ฐ€ ๋Œ์•„๊ฐ„ ๋’ค, aab ํŒŒ์ผ์ด ์ƒ์„ฑ ๋œ ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค. (app/release ํด๋”์— ์œ„์น˜)

 

4. google play console์— ์—…๋กœ๋“œ ํ•˜๋ฉด ๋œ๋‹ค.

์ด ๋•Œ ์ฃผ์˜ํ•  ์ ์€, ํ•œ๋ฒˆ ์•ฑ์„ ์˜ฌ๋ฆฐ ํ›„ key store๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ package name์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•ฑ๊ณผ play console์—์„œ ์ƒˆ๋กœ ์•ฑ์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”?

์ฝ”๋”ฉํ•˜๋Š” ๋ชจ์ฃผ๋ถ€ ์ž…๋‹ˆ๋‹ค!

 

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ๋Š”, ์ฝ”ํ‹€๋ฆฐ(Kotlin) ์ด๋ผ๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์–ดํ”Œ์„ ๋งŒ๋“ค์–ด ๋ณผ๊ฑฐ์—์š”!


1. ์†Œ๊ฐœ ๋ฐ ๊ฐœ์š”

 

์ฝ”ํ‹€๋ฆฐ์ด๋ž€?

IntelliJ IDEA์˜ ๊ฐœ๋ฐœ์‚ฌ 

JetBrains ์—์„œ 2011๋…„์— ๊ณต๊ฐœํ–ˆ๊ณ ,


2017๋…„ ๊ตฌ๊ธ€์ด ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹์–ธ์–ด๋กœ ์ถ”๊ฐ€ํ•œ ์–ธ์–ด์—์š”!

๊ตฌ๊ธ€์ด ๋ฐ€์–ด์ฃผ๊ณ  ์žˆ์œผ๋‹ˆ, ๋˜๊ฒŒ ํ•ซํ•œ ์–ธ์–ด์ฃ !

 

Java๊ฐ€ ์ต์ˆ™ํ•˜์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด,

์ฝ”ํ‹€๋ฆฐ๊ณผ Java๋ฅผ ๊ฐ„๋‹จํžˆ ๋น„๊ต ํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์•„์š”

  Kotlin Java
๊ณตํ†ต์  ๊ฐ์ฒด ์ง€ํ–ฅํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
์ฐจ์ด์  Null ํ• ๋‹น์ด ๊ฐ€๋Šฅ
๊ธฐ๋ณธํ˜• ํƒ€์ž…๋งˆ์ € ํด๋ž˜์Šค๋กœ ์กด์žฌ
๊ณ ์ฐจํ•จ์ˆ˜ / ๋žŒ๋‹ค ํ‘œํ˜„์‹ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
Data ํด๋ž˜์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ฝ”๋ฃจํ‹ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
Null ํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅ
๊ฐ์ฒด ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹

 

์ฝ”ํ‹€๋ฆฐ์ด ์ž๋ฐ”๋ณด๋‹ค ์ตœ๊ทผ์— ๊ฐœ๋ฐœ๋œ ์–ธ์–ด์ด๋‹ค ๋ณด๋‹ˆ,

ํŽธ๋ฆฌํ•˜๊ณ  ๊ตฌ์กฐ์ ์œผ๋กœ ์ž˜ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด์ธ๊ฒƒ ๊ฐ™์•„์š”.

 

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ๋Š”, ์ดˆ๋ณด์ž๋“ค์˜ ๋ˆˆ๋†’์ด์— ๋งž์ถ”์–ด

์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ์„œ ์‹คํ–‰ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค!

๋ผ๋Š”๋ฐ ์ดˆ์ ์„ ์ข€ ๋งž์ถ”๊ณ  ์ง„ํ–‰ํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

 

๋‹จ, ๋ชจ๋“  ์ž‘์—…๋“ค์€ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ์•ˆ๋˜๊ณ ..

PC์—์„œ ์ง„ํ–‰ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค!


2. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ์„ค์น˜

 

์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ์— ์•ž์„œ, ์„ธํŒ…์„ ๋จผ์ € ํ•ด์ค์‹œ๋‹ค

์•„๋ž˜์˜ ๋งํฌ์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ์„ค์น˜ํ•ด ์ฃผ์„ธ์š”

(VsCode๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„๋“ค์€, ๊ทธ๋ƒฅ ์“ฐ์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค)

 

developer.android.com/studio?hl=ko

 

Download Android Studio and SDK tools  |  Android ์ŠคํŠœ๋””์˜ค

developer.android.com

์œˆ๋„์šฐ์™€ ๋งฅ๋ถ ๋ชจ๋‘ ์„ค์น˜๊ฐ€๋Šฅํ•˜๋‚˜,

์„ค์ •์ด ์•ฝ๊ฐ„์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์–ด์š”.

(์ €๋Š” ๋งฅ๋ถ์œผ๋กœ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค!)


3. ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

 

์ด์ œ ์ฝ”ํ‹€๋ฆฐ์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ๊นŒ์š”?

์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ๋”ฐ๋ผ ์™€์ฃผ์„ธ์š”!

์ƒˆ๋กœ์šด ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค

 

๊ธฐ๋ณธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ˆŒ๋Ÿฌ ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”

 

๋งŒ๋“ค ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , Kotlin์„ ์–ธ์–ด๋กœ ์„ ํƒํ•ด์ฃผ์„ธ์š”

 

์™„์„ฑ์ด ๋˜์—ˆ๋‹ค๋ฉด, ์•„๋ž˜์˜ ํ™”๋ฉด์ด ๋‚˜์˜ฌ๊ฒ๋‹ˆ๋‹ค!

MainActivity.kt ๊ฐ€ ์ƒ์„ฑ๋œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.


4. ์ฝ”๋“œ ์‚ฝ์ž…๊ณผ AVD (๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค) ์‹คํ–‰

 

์ฝ”ํ‹€๋ฆฐ์€ ์•„๋ž˜์˜ 4๊ฐ€์ง€๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”,


Activity
Service
Broadcast receiver
Content provider


์ด ์ค‘์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” Activity ๋Š”,

๊ทธ๋ฆผ์ด๋‚˜ ๊ธ€์”จ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‹œ๊ฐ์ ์ธ ์š”์†Œ๋“ค์„

ํœด๋Œ€ํฐ์˜ ํ™”๋ฉด์— ๋„์›Œ์ฃผ๋Š” ์—ญํ• ์„ ํ•ด์š”.

 

์ฝ”๋”ฉ์˜ ๋ง›์„ ์‚ด์ง ๋ณด๊ธฐ์œ„ํ•ด์„œ,

์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋ผ์ธ9์™€ ๋ผ์ธ17์— ๊ฐ๊ฐ

์ฝ”๋“œ๋ฅผ ์‚ฝ์ž… ํ•ด ๋ณผ๊นŒ์š”?

Line 9  --> import android.widget.Toast
Line 17 --> Toast.makeText(this, "hello, formicae", Toast.LENGTH_LONG).show()

 

์‚ฝ์ž…์„ ํ•˜์…จ๋‹ค๋ฉด, ์‹คํ–‰์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”!

Run ์„ ํด๋ฆญ

 

๋งŒ์•ฝ, ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๊ฐ€ ์ฒ˜์Œ์ด์‹œ๋ผ๋ฉด

๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค ์„ค์น˜๊ฐ€ ํ•„์š”ํ• ๊ฑฐ์—์š”.

AVD Manager๋ฅผ ํด๋ฆญ
Create Virtual Device๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒ์„ฑ ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค

 

๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰์ด ์™„๋ฃŒ๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด,

์•„๋ž˜์™€ ๊ฐ™์ด "hello, formicae" ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€

์ž ๊น ์˜ฌ๋ผ์™”๋‹ค๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

 

์ด๊ฒƒ์€ Toast๋ผ๋Š” ๋‚ด์žฅ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ ๊ฒƒ์ธ๋ฐ์š”,

์•ž์œผ๋กœ๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์œ ์šฉํ•œ ํด๋ž˜์Šค๋“ค๊ณผ

์ง์ ‘ ๋งŒ๋“  ํด๋ž˜์Šค๋“ค์„ ์ด์šฉํ•ด ์–ดํ”Œ์„ ๋งŒ๋“ค์–ด ๋ณด์•„์š”!

 

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •์„ ๋‹ค๋ฃจ์—ˆ๊ณ ,

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ์”ฉ ๋ฐ”๊พธ์–ด ๊ฐ€๋ฉฐ

์–ด๋–ค ๊ฒƒ๋“ค์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์†Œ๊ฐœ ํ•ด ๋ณผ๊นŒ ํ•ด์š”!

 

๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์œผ๋กœ ๊ณ ๊ณ ์”ฝ :)

'Coding > Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Android ๊ฐœ๋ฐœ - Google service ์—ฐ๋™ํ•˜๊ธฐ  (0) 2021.03.20
์•ˆ๋“œ๋กœ์ด๋“œ release key store ๊ด€๋ฆฌ  (0) 2021.03.20

+ Recent posts