트러블슈팅
Capacitor + 카카오맵 capacitor:// 차단 — 이응 님의 구조적 진단과 3가지 해결안
왜 중요한가
부담 님이 Capacitor로 감싼 웹뷰 앱에서 카카오맵이 capacitor:// 주소를 가짜 주소로 보고 차단당하는 문제를 호소하자, 이응 님이 웹조사 기반 장문 해결안을 정리해 줬다.
깊이 보기
부담/Antigravity 님이 웹뷰 형식 앱을 아이폰 앱스토어에 올리려고 'Capacitor'라는 포장지를 씌웠는데, 애플이 강제 부여한 앱 주소(capacitor://)를 카카오 지도가 보안 규정상 '가짜 주소'로 인식해 차단하는 문제로 거의 일주일째 싸우고 있다며 도움을 청했다.
- 우푸/클코 님이 '빠르게 만나보자'고 받았고 부담 님은 답장 오자마자 해결됐다고 기뻐했다가 '다시 실패.. 엉엉 찾아뵙겠습니다'라며 별짓을 다 했다고 토로했다.
- 나른한 님은 설정에 등록해도 안 되냐고 물었다.
- 이응 / 클코덱스 님이 웹조사를 해보니 '지도 화면만 네이티브 Kakao Maps SDK로 구현하라'는 결론이라며 장문 답변을 정리했다.
- 진단은 이것이 설정 실수가 아니라 구조적 충돌이라는 것으로, Capacitor iOS는 기본 origin이 capacitor://localhost이고 카카오 지도 JavaScript API는 등록된 도메인에서만 동작하는데 2022년 카카오 DevTalk 답변 기준 Kakao Maps는 http·https·file 스킴만 지원하므로 capacitor:// 스킴을 등록할 수 없으면 JS 지도 SDK 방식이 막힌다고 설명했다.
- Capacitor의 iosScheme 변경은 가능하지만 iOS WKWebView가 이미 처리하는 http/https로는 못 바꿔 capacitor://를 https로 바꾸는 정공법은 안 되고, allowNavigation·hostname·cleartext·카카오 도메인 추가 같은 설정은 본질을 못 푼다고 했다.
유사 사례로 카카오 DevTalk의 Ionic WebView+Kakao Map+iOS capacitor:// 허용 문제(질문자가 'REST API로 직접 호출해서 해결')와 Ionic iOS WebView origin 때문에 401 나는 사례를 들었다. 제시한 해결책은 3가지로, 1번은 지도 화면만 네이티브 Kakao Maps SDK v2로 붙이고 JS는 Capacitor plugin/bridge로 지도 표시·마커·중심 이동·선택 이벤트만 주고받는 구조(가장 앱스토어 배포에 맞지만 웹 지도 코드를 그대로 못 쓰고 bridge 작업 필요), 2번은 지도 페이지를 실제 HTTPS 도메인으로 분리해 WebView 안에서 로드하고 postMessage로 좌표·마커·선택 이벤트를 주고받되 server.url은 live reload 용도라 앱 전체를 외부 URL로 돌리는 건 비추, 3번은 Kakao 지도 JS SDK를 포기하고 REST API + 다른 지도 렌더러를 쓰는 DevTalk 질문자의 실제 우회법이다.
이응 님은 1번 네이티브 SDK를 Capacitor plugin으로 감싸는 방식이 가장 확실하며 capacitor://를 카카오에 억지로 등록하려 계속 싸우는 방향은 시간 손실이 크다고 결론지었다. 2026년 1월 Kakao Login DevTalk에 'Capacitor scheme 등록 준비 중'이라는 답변이 있었지만 이는 로그인 문맥이고 지도 API 지원 증거는 못 찾았으며, X/Twitter·Threads·Reddit에서는 직접 해결 사례가 거의 없고 실질적 답은 Kakao DevTalk와 Ionic/Capacitor 포럼에 몰려 있었다고 검색 범위까지 밝혔다.
우푸 님은 'ㅋㅋㅋ 굉장해요'라며 감탄했다.