Solve Problem/React Native

[React Native] (2021 v3 ์—…๋ฐ์ดํŠธ) Kakao login ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ

์•ˆ๋‹คํฌ 2020. 3. 28. 04:00
728x90

๐Ÿ˜‰ ์ œ๊ฐ€ ์ง์ ‘ ์šด์˜์ค‘์ธ ์–ดํ”Œ "๋ฃจ๋น—"์„ ๋‹ค์šด๋ฐ›์•„๋ณด์„ธ์š”! (๋ฃจํ‹ด ๊ด€๋ฆฌ ์–ดํ”Œ)

๐Ÿฐ ๋ฃจ๋น— ํ™ˆํŽ˜์ด์ง€

ํ”Œ๋ ˆ์ด์Šคํ† ์–ด

์•ฑ์Šคํ† ์–ด

๊ทธ๋Ÿผ ์ด์ œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

 

ํ™˜๊ฒฝ

react-native: 0.63.4

@react-native-seoul/kakao-login: 3.0.3

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

https://github.com/react-native-seoul/react-native-kakao-login

์„ค์น˜

yarn add @react-native-seoul/kakao-login@3.0.3
cd ios && pod install

iOS & Android Post Installation

github.com/react-native-seoul/react-native-kakao-login#post-installation

  • Post Installation์„ ๋”ฐ๋ผ๊ฐ€์ฃผ์„ธ์š”.
    • Bridging Header ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š” 4๋ฒˆ ์ถ”๊ฐ€์„ค๋ช…
      1. XCode > File > New File > Header File ํด๋ฆญ
      2. ์ด๋ฆ„์„ YourApp-Bridging-Header.h ์ด๋ ‡๊ฒŒ ์ €์žฅ. YourApp ๋ถ€๋ถ„์ด ์•ฑ์˜ ์ด๋ฆ„ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.
      3. Project - Build Settings - Objective-C Bridging Header - YourApp-Bridging-Header.h ์ž…๋ ฅ.
    • 1๋ฒˆ ์ถ”๊ฐ€์„ค๋ช…
      • Pod์—์„œ iOS deployment target์ด 11.0 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • Podfile์—์„œ ```platform: ios, '10.0'``` ์ด๋ถ€๋ถ„์„ 11.0์œผ๋กœ ๊ณ ์ณ์ค€๋‹ค.
      • ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ !  Project - General Deployment Info๋„ 11.0์œผ๋กœ ๋งž์ถฐ์ค˜์•ผํ•œ๋‹ค. (์ด๋ฏธ์ง€1 ์ฐธ๊ณ )
      • Debug ๋•Œ๋Š” ๊ดœ์ฐฎ์€๋ฐ, Archiveํ•  ๋•Œ ์˜ค๋ฅ˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๋งž์ถฐ์ฃผ๊ธฐ!
      • ์ฐธ๊ณ : ์ด๋ฏธ์ง€2 (stackoverflow.com/questions/55675694/how-to-fix-cocoapod-modulemap-file-not-found)

์ด๋ฏธ์ง€1

 

์ด๋ฏธ์ง€2

 

 

 

- Usage

// ์œ„ ์˜ˆ์‹œ์™€ ๊ฐ™์ด, line1๋กœ importํ•˜๊ฑฐ๋‚˜ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜
import { login as loginKakao } from '@react-native-seoul/kakao-login'; // line 1 (O)

// line2์ฒ˜๋Ÿผ * as KakaoLogins ์œผ๋กœ import ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
import * as KakaoLogins from '@react-native-seoul/kakao-login'; // line 2 (O)

// line3์ฒ˜๋Ÿผ import ํ•  ์‹œ KakaoLogins.login ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
import KakaoLogins from '@react-native-seoul/kakao-login'; // line 3 (X)

 

 

 

- ์—๋Ÿฌ1: ํ‚คํ•ด์‹œ

ํ•ด์‹œํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

https://lakue.tistory.com/11

์ด ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์‹œํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด logcat์— ๋œจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

** logcat ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

1) ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ์ผœ๊ณ  vscode์—์„œ react-native run-android๋ฅผ ํ•œ๋‹ค.

2) ์•„๋ž˜ ์‚ฌ์ง„์—์„œ ์ขŒ์ธก ์ƒ๋‹จ์— ์žˆ๋Š” ๊ธฐ๊ธฐ ์„ ํƒ ๋“œ๋กญ๋‹ค์šด์„ ํด๋ฆญํ•ด์„œ ํ˜„์žฌ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์šฐ์ธก์ƒ๋‹จ์ฒ˜๋Ÿผ KeyHash๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ•ด์‹œํ‚ค๊ฐ€ ๋‚˜์˜จ๋‹ค!

์ด ๋ฐฉ๋ฒ•๋ณด๋‹ค ์ž๋ฐ”์ฝ”๋“œ๊ฐ€ ๋” ํ™•์‹คํ•˜๋‹ค.

logcat์— ๋œฌ ํ•ด์‹œํ‚ค๋ฅผ ์•„๋ž˜ ๋ณด๋ผ์ƒ‰ ๋„ค๋ชจ๋กœ ๊ฐ€๋ฆฐ ๋ถ€๋ถ„์— ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

- ์—๋Ÿฌ2: ๋ฆด๋ฆฌ์ฆˆ์šฉ ํ‚คํ•ด์‹œ๋Š” ๋”ฐ๋กœ ์žˆ๋‹ค

์œ„์—์„œ ์–ป์€ ํ‚คํ•ด์‹œ๋Š” ๋””๋ฒ„๊ทธ์šฉ์ด๊ณ , ๋ฆด๋ฆฌ์ฆˆ๋ฒ„์ „์„ ์œ„ํ•œ ํ‚คํ•ด์‹œ๋Š” ๋”ฐ๋กœ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ apk ๋ฝ‘๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋ฉด

invalid android_key_hash or ios_bundle_id or web_site_url

์ด ์—๋Ÿฌ๋Ÿฌ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ๋งํฌ๋กœ ๋“ค์–ด๊ฐ€์„œ '๋ฆด๋ฆฌ์ฆˆ ํ‚คํ•ด์‹œ' ๋ถ€๋ถ„์„ ๋”ฐ๋ผํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

vscode ํ„ฐ๋ฏธ๋„์—์„œ ํ”„๋กœ์ ํŠธ/android ์œ„์น˜์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

https://developers.kakao.com/docs/latest/ko/getting-started/sdk-android-v1#key-hash

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

์ถ”๊ฐ€)

https://devtalk.kakao.com/t/invalid-android-key-hash-or-ios-bundle-id-or-web-site-url/77068

์ด๊ณณ์„ ๋ณด๋ฉด ์œ„์ฒ˜๋Ÿผ '๋ฆด๋ฆฌ์ฆˆ ํ‚คํ•ด์‹œ'๋ฅผ ๋”ฐ๋ผํ•ด๋„ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์— ์ถœ์‹œํ•˜๋Š” ์ˆœ๊ฐ„ ์นด์นด์˜ค๋กœ๊ทธ์ธ์ด ์•ˆ๋จนํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ์Šคํ† ์–ด์— ์ถœ์‹œํ–ˆ๋Š”๋ฐ ์•ˆ๋ผ์„œ ๊ต‰์žฅํžˆ ๋‹นํ™ฉํ–ˆ์–ด์š” ๐Ÿ˜ญ

ํ”Œ๋ ˆ์ด์Šคํ† ์–ด์— ์˜ฌ๋ผ๊ฐ€๋Š” ํ‚ค๋Š” ๊ตฌ๊ธ€์—์„œ ๋”ฐ๋กœ ๋งŒ๋“ ๊ฑฐ๋ผ์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ1,2๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋กœ๊ทธ1

https://blog.naver.com/PostView.nhn?blogId=oaie&logNo=221633574661&parentCategoryNo=&categoryNo=7&viewDate=&isShowPopularPosts=true&from=search

๋ธ”๋กœ๊ทธ2

https://right-hot.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%82%A4%ED%95%B4%EC%8B%9C-%EC%96%BB%EB%8A%94-%EB%B0%A9%EB%B2%95-debug-keyhash-release-keyhash-googlePlay-keyhash

์ถœ์ฒ˜: ๋ธ”๋กœ๊ทธ2
์ถœ์ฒ˜: ๋ธ”๋กœ๊ทธ2

์–ป์€ ํ‚คํ•ด์‹œ๋ฅผ ์นด์นด์˜ค ๋””๋ฒจ๋กœํผ ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

=> ๋””๋ฒ„๊ทธ / ๋ฆด๋ฆฌ์ฆˆ / ํ”Œ๋ ˆ์ด์Šคํ† ์–ด - ์ด 3๊ฐœ์˜ ํ•ด์‹œ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ํฌ๊ฒŒ ๊ฐ•์กฐํ•˜์ง€ ์•Š์•„์„œ ๋ชฐ๋ž๋˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ณ ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค,,, ๊ผญ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!

- ์—๋Ÿฌ3: ์นด์นด์˜ค ๊ณ„์ • ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™œ์„ฑํ™” ์„ค์ • ์ƒํƒœ๊ฐ€ OFF์—ฌ์„œ ์ด๋‹ค ON์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”.

 

 

 

 

- ์—๋Ÿฌ4: iOS์—์„œ ๋กœ๊ทธ์ธ ์ธ์ฆ์ˆ˜๋‹จ ์„ ํƒ ํ™”๋ฉด์ด ๋œจ์ง€ ์•Š๋Š”๋‹ค. - v2 ๊ด€๋ จ ์—๋Ÿฌ

์ œ ์ฝ”๋“œ๋Š” ์ด๋Ÿฌํ–ˆ์Šต๋‹ˆ๋‹ค.

const result = await KakaoLogins.login();

์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด, ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” ๊ฐ„ํŽธ๋กœ๊ทธ์ธ๊ณผ ๊ณ„์ •์„ ์ง์ ‘ ์ž…๋ ฅํ•ด์„œ ๋กœ๊ทธ์ธํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹์ด ๋–ด๋Š”๋ฐ,

iOS์—์„œ๋Š” ๊ณ„์ •์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ์‹๋ฐ–์— ๋œจ์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด์Šˆ๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ๋‚˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์€ ์‚ฌ๋žŒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

github.com/react-native-seoul/react-native-kakao-login/issues/168#issuecomment-680868420

์›์ธ: ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ์„ค์ •์„ ์•ˆํ•ด์ค˜์„œ

๋”ฐ๋ผ์„œ ์•„๋ž˜๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”.

// info.plist
<string>kakao0123~9</string>
<string>kakaokompassauth</string>

// ๋กœ๊ทธ์ธ ๋‹ค๋ฃจ๋Š” ํŒŒ์ผ
import KakaoLogins, { KAKAO_AUTH_TYPES } from '@react-native-seoul/kakao-login';
const result = await KakaoLogins.login([KAKAO_AUTH_TYPES.Talk, KAKAO_AUTH_TYPES.Account]);

- v3 ๊ด€๋ จ ์ฐธ๊ณ 

v3 (3.0.3)์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋กœ๊ทธ์ธ ์ธ์ฆ ์ˆ˜๋‹จ ์„ ํƒ ํ™”๋ฉด์ด ๋œจ์ง€ ์•Š๊ณ , ๋ฐ”๋กœ ๊ฐ„ํŽธ๋กœ๊ทธ์ธ์ด ์„ ํƒ๋œ ์ฑ„๋กœ ๋กœ๊ทธ์ธ์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ์ž๋‹˜์ด v3๋ถ€ํ„ฐ๋Š” ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ์…จ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ด์Šˆ๋กœ ์˜ฌ๋ ค๋†“์•„ ์ถ”๊ฐ€๋œ๋‹ค๋ฉด ์ข‹์€ ๊ธฐ๋Šฅ์ผ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! (v2์—์„œ ์ž˜ ์“ฐ๊ณ  ์žˆ๋˜ ๊ธฐ๋Šฅ)

์—…๋ฐ์ดํŠธ๋˜๋Š”๋Œ€๋กœ ์ด ๊ธ€์—๋„ ๋ฐ˜์˜ํ•ด๋†“๊ฒ ์Šต๋‹ˆ๋‹ค!

- ์ด์Šˆ: github.com/react-native-seoul/react-native-kakao-login/issues/200

 

 

์ฐธ๊ณ ๋ธ”๋กœ๊ทธ

- https://github.com/react-native-seoul/react-native-kakao-login/issues/139

- https://thisisspear.tistory.com/53

 

์ถœ์ฒ˜: https://mingos-habitat.tistory.com/34 [๋ฐ๊ณ ์˜์„œ์‹์ง€:ํ‹ฐ์Šคํ† ๋ฆฌ]