Daeng iOS

[IOS/UIKit] Kakao Maps API 연동하기 본문

IOS/UIKit

[IOS/UIKit] Kakao Maps API 연동하기

U_Daeng 2022. 8. 4. 22:10

공모전에 참가하는 프로젝트에 지도를 사용할 일이 생겨서 

지도 띄우기를 처음으로 도전해봤다!

 

1) 우선 sdk를 다운

https://apis.map.kakao.com/ios/guide/

 

2) 다음은 아래사이트에서 API를 활용하기 위한 키를 발급

https://developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

3) 애플리케이션 등록 후 키를 발급

로그인 후 애플리케이션을 등록한다

앱 이름과 사업자명은 임의로 적어도 발급받을 수 있음

앱 설정 -> 플랫폼 -> ios 플랫폼 등록에서 번들 ID를 입력

(번들 ID는 프로젝트를 생성하는 첫 화면에서 Bundle Identifier)

 

4) 앱 키 등록

프로젝트의 Info.plist를 열고 Key는 KAKAO_APP_KEY를 입력하고 Value를 채운다

Value는 등록해둔 애플리케이션에서 앱 설정 -> 요약 정보 -> 앱 키 -> 네이티브 앱 키를 입력한다

 

5) 프로젝트에 프레임워크 추가 

받아둔 sdk 압축 폴더 풀기 ->  lib -> DaumMap.embeddedframework 폴더를 프로젝트안에 추가

프로젝트의 TARGETS -> General -> Frameworks, Libraries, and Embedded Content 에 의존성이 있는 다른 라이브러리들도 추가

처음엔 DaumMap.framework만 추가했더니 지도에 마커표시할 때 뜨지않았음!!

위 카카오사이트에서 나온 것과 다르게 버전이 업데이트 되면서 OpenGLES를 사용하지 못한다고 한다!

만약에 복잡한 오류지만 뭔가 반복되는 듯한 오류들이 겁나 많이 뜬다면 TARGETS가서 제대로 추가됐는지 확인하기

 

6) 헤더파일 추가 및 연결

카카오 맵이 오브젝트씨로 작성돼서 swift에서 사용하려면 헤더파일이 존재해야 한다

프로젝트에 new file로 Header File을 추가

TARGET -> Build Settings에서 다음과 같이 헤더파일의 경로를 추가

sdk가 objective-c 기반으로 만들어졌기 때문에 swift 프로젝트에 쓰려면 bridging 헤더가 필요

(finder에서 헤더파일을 선택하고 command+option+c로 복사 후 붙여넣기)

현재 Map용 SDK는 ARC를 지원하지 않기 때문에 ARC를 NO로 설정

 

7) 소스코드

import UIKit

class ViewController: UIViewController, MTMapViewDelegate{
     
    var mapView: MTMapView?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        //지도 불러오기
        mapView = MTMapView(frame: self.view.bounds)
        if let mapView = mapView{
            //델리게이트 연결
            mapView.delegate = self
            //지도의 타입 설정(hybrid:하이브리드, satellite:위성지도)
            mapView.baseMapType = .standard
            self.view.addSubview(mapView)
        }
    }
}

ViewController.swift에 위처럼 코딩하면 지도가 뜬다!

 

https://github.com/yujeong-kwon/kakaomapTest

 

GitHub - yujeong-kwon/kakaomapTest: 카카오맵 api 적용 연습하기

카카오맵 api 적용 연습하기. Contribute to yujeong-kwon/kakaomapTest development by creating an account on GitHub.

github.com