샘플앱에서는 성별 정보가 잘 내려옵니다.
카카오 서비스와 외부 서비스의 권한 관리가 조금 다른 것 같은데요.
카카오 서비스는 세부 권한이 숨겨져 있는 반면, 외부 앱은 세부 권한을 각각 연결된 서비스에서 조정이 가능하더라고요.
여기에서 오는 차이는 없을까요? API 사용은 크게 문제가 없어 보입니다.
안드로이드용 카카오SDK는 2.21.2 버전부터 내부적으로 사용하는 직렬화/역직렬화 라이브러리로 kotlinx.serialization를 사용하고 있습니다.
카카오SDK에서 사용하는 kotlinx.serialization은 1.6.3 버전인데요, 이슈가 발생한 프로젝트에서 사용하는 다른 라이브러리 혹은 프로젝트 자체적으로 설정된 의존성 설정에 의해 dependency transitive가 발생해 kotlinx.serialization 1.7.0 이상 버전이 적용된 것으로 보여요. 그런데 kotlinx.serialization 1.7.0 이상부터는 kotlin 2.0.0을 사용해야하고, kotlin 2.0.0 버전부터는 k2 컴파일러가 적용되면서 kotlinx.serialization 내부 동작이 변경되어 이슈가 발생한 것으로 보입니다. (SDK 샘플앱은 dependency transitive가 발생하지 않아서 kotlinx.serialization 1.6.3 버전이 적용되어 정상 동작)
카카오SDK 내부에서 enum으로 역직렬화할 때 커스텀 KSerializer를 사용하고 있는데, 구현한 커스텀 KSerializer가 kotlinx.serialization 1.7.0 이상 버전 사용시 enum 으로 제대로 매핑하지 못하는 것을 확인했고, 1.7.0 이상 버전에서도 정상적으로 동작하도록 대응했습니다.