accessToken 가져올때 에러나는 이유를 알고 싶습니다

KOSession.shared().close()

KOSession.shared()?.open(completionHandler: { error in
guard KOSession.shared().isOpen() else {
return
}

KOSessionTask.userMeTask { (error, result) in
guard
let kakaoId = result?.id,
let kakaoToken = KOSession.shared()?.token.accessToken else {
return
}
}

})

카카오 로그인할때 이런식으로 처리하고 있습니다. 근데 일부 사용자가 KOSession.shared()?.token.accessToken 이부분에서 크래시가 나는거 같습니다. 어떤 상황에서 나는지 알수있을까요?

안녕하세요. 코드쪽에 특별한 문제는 보이지 않습니다.

다만, 아래와 같이 guard문 전에 error 체크 한번만 해주시면 감사하겠습니다.

if let error = error {
print(“>>>>>error:”,error)
}

그리고 크래시 났을때 디버그 로그창 캡춰도 부탁드립니다.

@2circumflex
accessToken에 접근할 때 token.accessToken으로 한번에 하지 마시고 token, accessToken을 나눠서 해보시겠어요?
보여주신 코드만으로는 파악하기 어려우나 어떤 원인에 의하여 토큰이 만료된 것 같습니다.

현재 KOSession의 token에 nullable 표기가 되어 있지 않아 unspecified 상태인데 스펙상으로 nullable입니다.
token이 nil일 경우 token.accessToken과 같이 사용하실 경우 크래시가 발생합니다.

이 부분은 nullability annotation을 표기하여 해당 이슈가 발생하지 않도록 업데이트 예정입니다.