[iOS18 Beta] WkWebView Cookies 못 가져오는 현상 (SameSite default Lax 변경)

  [iOS18 Beta] WkWebView Cookies 못 가져오는 현상 (SameSite default Lax 변경)


안녕하세요 물먹고하자 입니다 :)

iOS18 대응하고 있는중에 WkWebView에서 Cookies 값을 못가져가는 현상이 있어서

해결했던 부분 공유드립니다.


  이슈발생

 


(이미지1) iOS18 Beta, (이미지2) iOS17 정식버전

해당 부분의 코드의 상황설명을 덧붙이자면

API 통신 후 전달받은 HtmlString 값을 WkWebView에 넣어주는 화면

(거기에서도 iframe으로 Redirect가 되는 특정 화면)


저희기준의 인증에러가 발생하였고, 

Nginx 로그를 확인했을때도 Cookies 값이 들어오지 않은걸로 확인됨.



  이슈찾는과정

WkWebView 영역임으로 Safari 개발자 모드를 통해 디버그 하기 시작.

(참고 : [iOS] WebKit 개발자모드 디버깅하기)

디버깅통해서 호출시에도 확실하게 401 인증에러 발생하는걸 확인

iOS18 약속된 Cookies값 3개 들어가있는걸 확인

iOS17 동일하게 약속된 Cookies값 들어있음. (로드 후 추가 쿠키도 확인)


나는 Cookies를 줬고 <-------> 상대는 Cookies를 못받은 상황

(누구의 잘못인가.. 누가 가로챌일도 아니고 생각하다가)

두개 이미지를 계속보다가 끝자락에 SameSite 정보값이 틀린걸 확인

iOS 18 SameSite 검색 하다가 발견한 내용

SameSite 설정 값 "Strict" > "Lax" > "none"
SameSite 설정값이 3가지 인데, 기존에는 "none" 이 default 였는데 iOS18부터 "Lax"가 default로 변경

위의 이미지랑 Cookies 값 대조해도 변경된걸 확인


테스트로 iOS17에서 SameSite "Lax"로 설정하니 iOS18과 동일하게 나오는걸 확인 이제 대응

loadHTMLString 함수 호출시 baseURL nil 이였던 부분을 도메인정보로 기입
(필자의경우는 도메인을 따로 받아서 회사별 값 셋팅하게 처리)

이슈 해결 😁

  마무리

오늘은 iOS18에서 WkwebView HTMLString으로 호출시 Cookies 값을 못가져가는 이슈건 수정했습니다.

아직까지 다른 iOS18 이슈건이없었는데, 보안등급이 올라가면서 이슈가 나올줄은 몰랐네요

해결방법은 간단했는데, 찾는과정이 사실 오래걸렸습니다 ㅠ


오늘은 이만


즐거운코딩되세요.

댓글

이 블로그의 인기 게시물

[iOS] 앱 아이콘 동적으로 변경하기 (Dynamically Change App icon)

[iOS] 앱스토어 등록 전, 후 URL 알아보기

[iOS] 초성 검색 지원하기 (유니코드 초성분리)

[Xcode] add Simulators (시뮬레이터 추가하기)