Flutter

[Flutter_Android] R8/ProGuard 적용 후 네아로 에러

devyong 2025. 2. 26. 19:34

네이버 로그인 SDK가 에러를 반환하는 것을 파악했다.

 

사용중인 네아로 패키지 : https://pub.dev/packages/flutter_naver_login

 

flutter_naver_login | Flutter package

A Flutter plugin for using the native Naver Login SDKs on Android and iOS.

pub.dev

 

1. 문제 현상

Flutter Android 앱에 네이버 로그인 SDK를 적용한 후, R8/ProGuard를 활성화하면 네이버 로그인 API 응답에서 아래와 같은 오류가 발생

 

<print로 찍어본 response>

{ status: NaverLoginStatus.error, account: { nickname: , id: , name: , email: , gender: , age: , birthday: , birthyear: , profileImage: , mobile: , mobileE164:  }, errorMessage: errorCode:no_catagorized_error, errorDesc:no_catagorized_error, accessToken: { accessToken: , refreshToken: , expiresAt: , tokenType:  } }

errorCode : no_catagorized_error
errorDescription : 인증을 진행할 수 있는 앱이 없습니다.

 

2. 원인 분석

R8/ProGuard는 코드 난독화를 수행하여 앱의 크기를 줄이고 보안을 강화하는 역할을 한다. 하지만 이 과정에서 네이버 로그인 SDK가 필요한 특정 클래스나 메서드를 찾지 못하는 문제가 발생할 수 있다.

특히, 네이버 로그인 SDK 내부적으로 앱 정보를 가져오는 과정에서 문제가 발생하여 no_categorized_error가 반환되는 것으로 보인다.

 

3. 해결 방법

이 문제를 해결하기 위해 gradle.properties 파일에 아래 설정을 추가해 R8의 fullMode를 비활성화한다.

해결 방법 적용하기

  1. android/gradle.properties 파일 열기
  2. 아래 속성을 추가
  3. android.enableR8.fullMode = false
  4. 프로젝트를 Invalidate Caches & Restart 한 후 다시 빌드 및 실행

 

4. 결과

위 설정을 적용한 후, 네이버 로그인 SDK가 정상적으로 동작하며 no_categorized_error가 더 이상 발생하지 않고 정상적인 response를 반환한다.

 

 

android.enableR8.fullMode = false 를 설정하는 방법이 실패한다면, ProGuard 규칙을 설정하거나 SDK를 확인