IT/React-native

Expo) 카카오 로그인 구현하기 - 라이브러리 설치 및 빌드

프티 2024. 4. 17. 02:31
반응형

expo에서 카카오 로그인을 구현하고자 했다.

로그인 구현 방식은 웹뷰/앱 내부로 크게 두 가지로 구현이 가능하다.

웹뷰로 로그인을 구현하게 되면 카카오 앱으로 넘어가기 때문에 웹뷰가 아닌 앱 내부에서 로그인을 처리하고 싶었다. (참고링크)

 

서치한 결과 @react-native-seoul/kakao-login을 사용하면 expo에서도 앱 내부에서 카카오 로그인이 구현 가능하다는 것을 알게 되었다.

yarn add @react-native-seoul/kakao-login

 

이후에 로컬 빌드를 하였으나 아래의 에러를 마주하게 되었다.

* What went wrong:
Could not determine the dependencies of task ':app:processDebugResources'.
> Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
   > Could not find com.kakao.sdk:v2-user:2.11.2.
     Searched in the following locations:
       - https://oss.sonatype.org/content/repositories/snapshots/com/kakao/sdk/v2-user/2.11.2/v2-user-2.11.2.pom
       - https://repo.maven.apache.org/maven2/com/kakao/sdk/v2-user/2.11.2/v2-user-2.11.2.pom
       - file:/Users/user/projects/myapp/node_modules/jsc-android/dist/com/kakao/sdk/v2-user/2.11.2/v2-user-2.11.2.pom
       - https://dl.google.com/dl/android/maven2/com/kakao/sdk/v2-user/2.11.2/v2-user-2.11.2.pom
       - https://www.jitpack.io/com/kakao/sdk/v2-user/2.11.2/v2-user-2.11.2.pom
       - file:/Users/user/projects/myapp/node_modules/react-native/android/com/kakao/sdk/v2-user/2.11.2/v2-user-2.11.2.pom
     Required by:
         project :app > project :react-native-seoul_kakao-login
   > Could not find com.kakao.sdk:v2-talk:2.11.2.
     Searched in the following locations:
       - https://oss.sonatype.org/content/repositories/snapshots/com/kakao/sdk/v2-talk/2.11.2/v2-talk-2.11.2.pom
       - https://repo.maven.apache.org/maven2/com/kakao/sdk/v2-talk/2.11.2/v2-talk-2.11.2.pom
       - file:/Users/user/projects/myapp/node_modules/jsc-android/dist/com/kakao/sdk/v2-talk/2.11.2/v2-talk-2.11.2.pom
       - https://dl.google.com/dl/android/maven2/com/kakao/sdk/v2-talk/2.11.2/v2-talk-2.11.2.pom
       - https://www.jitpack.io/com/kakao/sdk/v2-talk/2.11.2/v2-talk-2.11.2.pom
       - file:/Users/user/projects/myapp/node_modules/react-native/android/com/kakao/sdk/v2-talk/2.11.2/v2-talk-2.11.2.pom
     Required by:
         project :app > project :react-native-seoul_kakao-login
   > Could not find com.kakao.sdk:v2-story:2.11.2.
     Searched in the following locations:
       - https://oss.sonatype.org/content/repositories/snapshots/com/kakao/sdk/v2-story/2.11.2/v2-story-2.11.2.pom
       - https://repo.maven.apache.org/maven2/com/kakao/sdk/v2-story/2.11.2/v2-story-2.11.2.pom
       - file:/Users/user/projects/myapp/node_modules/jsc-android/dist/com/kakao/sdk/v2-story/2.11.2/v2-story-2.11.2.pom
       - https://dl.google.com/dl/android/maven2/com/kakao/sdk/v2-story/2.11.2/v2-story-2.11.2.pom
       - https://www.jitpack.io/com/kakao/sdk/v2-story/2.11.2/v2-story-2.11.2.pom
       - file:/Users/user/projects/myapp/node_modules/react-native/android/com/kakao/sdk/v2-story/2.11.2/v2-story-2.11.2.pom
     Required by:
         project :app > project :react-native-seoul_kakao-login
...

 

해당 라이브러리 문서에 나온대로 아래 설정을 해주고 리서치를 진행했으나, 빌드시 kakao android sdk를 찾지 못하는 원인에 대한 해결책을 찾을 수 없었다..

 

그러다 해당 이슈에 대한 원인을 친절히 알려주시는 코멘트를 발견하였다!

따봉 100만개 주고싶다

Maven은 안드로이드의 라이브러리들을 관리해주는 도구인데, kakao sdk를 찾지 못하니 app.json / app.config.ts에서 해당 라이브러리에 대한 레포를 추가해줌으로서 해결할 수 있다는 가이드였다.

이에 따라 아래와 같이 설정해주었다.

plugins: [
    [
      'expo-build-properties',
      {
        android: {
          "extraMavenRepos": ["https://devrepo.kakao.com/nexus/content/groups/public/"]
        }
      }
    ],
    [
      '@react-native-seoul/kakao-login', {
        kakaoAppKey: '카카오 앱 키',
      }
    ]
  ]

 

하지만.. 또 다시 에러를 마주하고 말았다.

 

expo에 세팅된 kotlin gradle version은 1.5.10인데, 플러그인 호환 버전이 최소 1.5.20 이상인 것을 알게 되었다.

따라서, @react-native-seoul/kakao-login 플러그인 세팅에서 코틀린 버전을 1.5.20으로 설정하였다.

plugins: [
    [
      'expo-build-properties',
      {
        android: {
          "extraMavenRepos": ["https://devrepo.kakao.com/nexus/content/groups/public/"]
        }
      }
    ],
    [
      '@react-native-seoul/kakao-login', {
        kakaoAppKey: '카카오 앱 키',
        kotlinVersion: '1.5.20'
      }
    ]
  ]

 

드디어 빌드 성공.. 역시 지식 공유의 힘은 크다👍

 

별거 없지만 해당 이슈에 대한 PR에 코틀린 버전 명시가 제거되어 있길래 먼지톨보다도 작은 제안을 하며 이번 이슈를 마무리하였다..

해당 제안에 피드백이 오면 추가 공유 예정!

반응형

'IT > React-native' 카테고리의 다른 글

eslint, husky, lint-staged, commitlint 설정  (0) 2024.01.11