카카오내비 SDK와 관련된 질문과 답변을 올리는 카테고리입니다.
안녕하세요.
카카오내비 길찾기 SDK with UI 1.9.3 사용 중입니다.
KNSDK.initializeWithAppKey() completetion error로 C103이 간헐적으로 보이고 있습니다.
간헐적으로 보인다는 것은 거의 초기화가 성공한다는 뜻이고, 문서 에러코드 해결 방법 중 올바른 앱키 사용은 아닌 것 같습니다.
초기화 실패 후 내비 뷰에 진입할 때 초기화가 안되어있으면 재초기화를 진행하는데 항상 동일한 이유(C103)로 실패합니다.
그런데 앱 프로세스를 종료 후에 다시 들어오면 바로 초기화가 완료됩니다.
install이 문제일 수도 있는지 다른 문제가 있을 수도 있는지 궁금합니다.
수고 많으십니다.
안녕하세요, 카카오모빌리티의 기술 제휴 담당자입니다.
C103은 앱 키 관련 오류인데요, 올바른 앱 키를 입력했음에도 C103 에러가 발생한다면
메시지(아이콘 클릭하면 확인 가능)를 통해
- 앱 이름
- 사업자명
- 네이티브 앱 키값
전달 부탁드립니다. 확인해 보겠습니다.
감사합니다.
문의 주신 글로 보았을 때는 인증 절차(initializeWithAppKey() Completion 이후)에
인증 결과와 상관 없이 내비뷰를 호출하는 것으로 보이는데요,
의도된 방법이 아니기에 해당 방법으로 진행했을 때 KNSDK 내부적으로 문제가 발생할 수 있습니다.
인증 결과가 성공한 경우, (KNError == null) 에 한하여 내비뷰를 호출할 수 있는지 확인 부탁드립니다.
그리고 추가 문의 답변드립니다.
initSt가 KNSDKInitState_OnInitializing 일 때, 인증 요청을 진행하는 중에 initializeWithAppKey()를 호출하게 되면 인증 상태가 변경되기 전까지 1초 간격으로 재귀 호출을 하도록 되어있습니다.
이 인증 상태가 변하지 않은 상태에서 KNSDK를 릴리즈 하게 될 경우,
비정상적인 동작이 이루어 질 수 있습니다.
감사합니다.
@kakaonavi 더 정확하게 말씀드리면
내비 뷰에 진입하기 전에 InitSt가 KNSDKInitState_Initialized
가 아닐 경우 KNNaviView 및 delegate 연결 등 내비와 관련된 모든 코드를 실행하지 않습니다. (=해당 뷰에 진입하지 않습니다)
C103 코드가 발생하는 경우가 네트워크 연결 불가 상황들도 있는지 아니면
네트워크 연결 불가 상태에선 계속 KNSDKInitState_OnInitializing
상태고 C103이 발생하지 않는지 궁금합니다.
메시지로 보내드렸지만 네트워크 속도를 5kb~10kb 로 낮추면 KNSDKInitState_OnInitializing
상태가 지속되었고 네트워크 속도를 정상적으로 올려도 변화가 없었습니다. 해결 방법이 있는지 궁금합니다.
C103의 오류 발생 원인은 네트워크 연결 불가, 타임아웃 또는 서버 접속 불가, 서버 인증 오류 등
여러가지가 있으며, 상세 내용은 KNError.msg 확인이 필요합니다.
msg의 내용에 따라서
“SDK Certification Failed” 만 있는 경우 - 클라이언트 및 서버의 네트워크 문제로 인한 오류
“SDK Certification Failed - 상세 내용” 의 경우 - 서버에서 받은 인증이 실패한 오류로 볼 수 있습니다.
initst 상태는 initializeWithAppKey 함수가 실행되자마자 OnInitializing 상태로 바뀌며,
결과(인증성공 또는 실패)가 나오지 않는 한, OnInitializing 상태가 지속됩니다.
말씀하신 OnInitializing 상태가 유지되는 현상은 결과가 나오지 않아서 지속되는 것으로 보입니다
그리고, 말씀하신 네트워크 속도 변경의 경우는
어떤 방식으로 변경하여 테스트 하셨는지 확인이 필요해 보입니다.
@kakaonavi C103 에러 설명 감사드립니다.
네트워크 속도 제한은 adb shell 이용하여 테스트했습니다.
adb shell tc qdisc add dev wlan0 root netem rate 10kbit
로 10kb 제한하고
일정 시간이 지난 후
adb shell tc qdisc del dev wlan0 root
정상 속도로 돌렸습니다.
안녕하세요
내부적으로 속도 제한을 설정하여 확인, 테스트를 진행하여 보았습니다.
최대 속도 제한 - up: 5kb down: 5kb
KNSDK 내부 로직으로 인하여 인증 재시도를 시도하지만
KNSDK에서 사용하는 retrofit2의 Socket closed가 발생하며 모두 인증 실패
최대 속도 제한 - up: 10kb down: 10kb
Socket closed와 response 성공이 교차로 발생하며 인증 성공, 실패가 발생합니다
테스트 시, 인증 요청 결과를 받아오는 시간은 대체로 적게는 1분, 길게는 2분이상 소요되었습니다.
송수신되는 데이터량을 감당하기에 너무 낮은 속도여서 발생하는 것으로 보이며,
속도제한 값을 변경하며 해본 결과 300kb 이상에서 원활하게 사용하실 수 있을것으로 보입니다.
감사합니다.