리액트 네이티브 카카오 소셜 로그인 배포 관련

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.

Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.


앱 ID: 1047391
SDK 버전 정보: 33

안드로이드 스튜디오 에뮬레이터에서는 카카오 로그인이 정상 작동 되는데 apk 배포해서 핸드폰에서 실행시키면 동작하지 않는 에러가 발생합니다. 카카오 로그인 버튼을 클릭하면 카카오톡으로 리다이렉팅 되지 않고, 버튼에 적용된 애니메이션만 동작합니다. 혹시 안에 있는 다른 기능도 동작하지 않을까 싶어서 카카오 로그인 버튼에 소셜 로그인 동작 대신, 그냥 token 넣어서 메인 페이지로 넘어가는 핸들러를 부착했더니 다른 기능은 전부 정상 작동합니다.
현재 앱은 심사 중에 있고, 디벨롭 설정에서 릴리즈 hash key 추가 등록했고, 릴리즈로 apk 추출했으며 pro guard 설정도 수정했습니다.

안녕하세요

서버 로그를 확인했을 때는 정상적으로 토큰 발급이 된 것으로 보이는데요, 구현하신 로그인 코드 첨부 부탁드리겠습니다.

  const kakaoLogin = async () => {
    console.log("테스팅 중")
    try {
      // 여기에서 함수 이름을 kakaoLoginFunc로 변경했습니다.
      const res = await kakaoLoginFunc();
      console.log('로그인 성공!:', JSON.stringify(res));
      console.log(res); // 반환되는 객체 확인
      // accessToken을 전달하기 전에 res가 정상인지 확인
      if (res) {
        // 성공적으로 토큰을 받아오고 로그인 처리
        await storeLogin(res.idToken);

        // 로그인 후 LandingInputScreen으로 이동
        navigation.navigate('LandingInput');
        
      } else {
        console.log('Login response is undefined');
      }
    } catch (error) {
      if (error.code === 'E_CANCELLED_OPERATION') {
        console.log('Login cancelled')
      } else {
        console.error(error)
      }
    }
  }

위 코드를 로그인 버튼에 부착했습니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 인터넷 사용 권한 설정-->

      <!-- 카카오 로그인 관련 -->
      <activity android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
        android:exported="true">
        <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <!-- Redirect URI: "kakao{NATIVE_APP_KEY}://oauth" -->
          <!-- <data android:host="oauth" android:scheme="@string/KAKAO_NATIVE_APP_KEY" /> -->
          <!-- <data android:scheme="kakao@string/kakao_app_key" android:host="oauth" /> -->
          <data android:host="oauth" android:scheme={네이티브 앱 키} />
        </intent-filter>
      </activity>
    </application>
</manifest>

이렇게 설정되어 있습니다.

<resources>
    <string name="app_name">mozzi</string>
    <!-- <string name="kakao_app_key">${KAKAO_NATIVE_APP_KEY}</string> -->
    <string name="kakao_app_key">@string/KAKAO_NATIVE_APP_KEY</string>
</resources>

이건 string.xml인데, 환경 변수 처리했습니다. 릴리즈 apk 만들 때 로그에 환경 변수 잘 인식했다는 내용도 떴었구요

근데 앞전 게시글을 올린 후, 그 사이에 다른 안드로이드 폰으로 테스트를 했는데 그 핸드폰은 카카오톡으로 넘어가긴 합니다만, 다시 랜딩으로 돌아온 다음 메인 페이지로 넘어가야 하는데 메인 페이지로 넘어가지 않습니다. 혹시 백 쪽에 로그라도 찍혔나 확인했더니, 스프링부트 로그를 확인했더니 아무 엑세스 토큰도 발급되지 않았습니다.

답변 주시면 감사하겠습니다.

첨부해주신 코드를 확인했을 때 react-native-kakao 라이브러리를 사용하시는 것으로 보이네요.

아쉽지만 해당 라이브러리는 카카오에서 공식적으로 개발, 운영하는 라이브러리가 아니라서 관련 이슈에 대해서 이슈 파악하기가 어렵습니다.

번거로우시더라도 라이브러리 개발자 측에 직접 문의 부탁드리겠습니다.