본문 바로가기
잡다한것들

웹앱 ios 빌드 시, 외부 스크립트 불러오지 못하는 오류

by 갈잃자 2024. 12. 24.

개요: 웹앱 프로젝트에 카카오맵 스크립트가 불려오지 않는 오류가 생김 (ios 앱에서만)


우선, 카카오 맵을 웹에서 사용하기 위해 script를 추가해야된다.

 

index.html

  <script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey={ appkey }"></script>

 

이걸 사용하고 자 하는 컴포넌트에서 declare 하여 사용하는데, 웹, android 에선 잘 되는데 ios에서만 안되는 오류가 발견;;

 

오류를 보고 구글링을 하닥보니, ios 웹뷰 정책으로 인해서, ios 앱에서만 카카오맵 스크립트를 못불러오는 상황이였음.

 

이 ios 정책을 뚫어서 웹뷰로 카카오 맵을 띄워주기 위해 고군분투 시작

 

info.plist

    <key>LSApplicationQueriesSchemes</key>
    <array>
         <string>kakaokompassauth</string>
        <string>kakaomap</string>
    </array>
    
    <key>NSAppTransportSecurity</key> <!-- 앱의 네트워크 보안 정책 설정 -->
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/> <!-- 앱이 임의의 네트워크 요청을 허용하도록 설정 -->
        <key>NSExceptionDomains</key>
        <dict>
            <key>map.kakao.com</key> <!-- 카카오맵 도메인에 대한 예외 설정 -->
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/> <!-- 하위 도메인도 예외 처리 -->
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/> <!-- HTTP 요청을 허용. HTTPS가 아닌 HTTP로 로드되는 리소스를 허용 -->
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/> <!-- HTTPS 연결에 대해 'Forward Secrecy' 요구를 비활성화 -->
            </dict>
        </dict>
    </dict>

 

요롷게 추가하니깐 되더랑구

기본적으로 카카오 scripts는 https 로 되어있으니, NSExceptionAllowsInsecureHTTPLoads 는 굳이 추가하지 않아도 될거같음

댓글