-
[iOS] KakaoMap 이용하기iOS 2023. 2. 3. 21:26
지독했던 KakaoMap 지도 추가 방법을 아카이빙 하고자 한다.
KakaoMap 공식 사이트에 들어가보면 카카오지도는 swift지원이 안된다,,,ㅠㅡㅠ
https://apis.map.kakao.com/ios/guide/
그래서,,,마커 이지미나 화면을 띄우는 작업 등 공식사이트를 참조하진않았고,,,티스토리를 많이 참조했던것같다.
그래도 SDK 다운로드는 공식 사이트에서 받았다,,,ㅎ
여러개의 티스토리를 참고해서 구현했던거라서 다 적어두고자 한다!
https://aircook.tistory.com/entry/Kakao-Maps-API-with-Swift
Kakao Maps API with Swift
iOS에서 카카오맵을 연동해보겠습니다. 다음 링크를 가서 SDK를 다운받고 설명을 읽어봅니다. https://apis.map.kakao.com/ios/guide/ 파일의 이름에 DaumMap이라고 나와 있네요. 이름 바꿀 생각도 없고, Swift로
aircook.tistory.com
우선 카카오지도를 화면에 띄우는 작업까지는 위 티스토리를 많이 봤다.
1. 플랫폼 등록
과정을 상세히 적어보면 카카오맵이든, 소셜 로그인을 구현하든 사용하고자 한다면
해당 사이트로 가서 내 애플리케이션에 플랫폼 등록을 해야한다!
그 과정은 카카오 소셜 로그인 구현할때 자세하게 적어놨으니 참조하면 좋다!
https://org9899.tistory.com/89
[iOS] KakaoSocial 로그인 구현
https://developers.kakao.com/docs/latest/ko/kakaologin/ios Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. dev
org9899.tistory.com
위 게시물에서 1번 플랫폼 등록까지만 참고하면 된다 :)

플랫폼 등록이 된것을 확인하면, 각자 발급받은 키를 이용해 info.plist를 수정해주면 된다.

아래처럼 KAKAO_APP_KEY에 발급받은 앱키를 넣어주면 된다.

2. 라이브러리 추가 및 환경 설정
2-1. 라이브러리 추가
우선 다운받은 프레임워크를 프레임워크 폴더에 추가해준다! 폴더를 추가해준뒤에는 라이브러리를 추가해주어야하는데, 라이브러리를 추가할때는 주의할점이있다! 하나라도 추가가 되지않는다면 안뜬다,,,라이브러리는 아래처럼 추가해주면된다.

공식문서에는 Metal이아니라 무슨 OpenGL?로 되어있을텐데 그렇게 하면 안뜬다,,,업데이트 좀 해줘요 줴발
2-2. 환경설정
현재는 Map용 SAK는 ARC를 지원하지않는다고 한다. 그래서 ARC를 No로 설정해주면 된다!

3. 헤더파일 추가
SDK가 Objective-C로 구성되어있어서,,,Swift로 사용하기 위해서는 "Bridging Header"를 설정해야 된다!
→ command + n 눌러서 헤더파일 추가

이 망할놈의 헤더파일,,,이거 경로때문에 참 고생했다,,,
헤더파일명은 : 프로젝트명-Bridging-Header.h
로 저장해주면 된당!
내 프로젝트로 예시를 들면 ex)KakaoMapTest-Bridging-Header.h
헤더파일 안에는 아래 코드를 추가해주면 된다!
#ifndef KakaoMapTest_Bridging_Header_h #define KakaoMapTest_Bridging_Header_h #import <DaumMap/MtMapView.h> #endif /* KakaoMapTest_Bridging_Header_h */
다음은 헤더파일 경로를 설정해주어야하는데, 여기서 자꾸 오류나서 고생을 좀 했다

경로는 그냥 헤더파일을 클릭해서 Full Path를 복붙하면된다. (다만, 이러면 다른 컴퓨터에서 볼때는 안뜬다,,,띄울때마다 경로를 바꿔줘야하더라고요,,,쩝,,,)

4. 코드 추가
설정을 완료했으면 아래 코드를 추가해주면된다!
import UIKit class ViewController: UIViewController, MTMapViewDelegate { var mapView:MTMapView? override func viewDidLoad() { super.viewDidLoad() mapView = MTMapView(frame: self.view.bounds) if let mapView = mapView { mapView.delegate = self mapView.baseMapType = .standard self.view.addSubview(mapView) } } }그러면~ 뿅! 뜰것같지만 개같이 오류가 뜰것이다!
아래와 같은 오류가 뜬다,,,
In /Users/kimminkyung/Desktop/iOS/iOS_Practice/KakaoMapTest/DaumMap.embeddedframework/DaumMap.framework/DaumMap(HashUtils.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/kimminkyung/Desktop/iOS/iOS_Practice/KakaoMapTest/DaumMap.embeddedframework/DaumMap.framework/DaumMap' for architecture arm64
cf) 혹시나 이 에러말고, 헤더파일이 없다는 에러가 나왔다면, 헤더파일 경로를 확인해서 다시 넣어주면 된다!
5. 오류 잡아먹어버리기
자 오류를 잡아먹어버리자!
우선 저 오류는 아래 티스토리에 자세하게 나와있다.
에러 잡기 1: 'ld: building for iOS Simulator, but linking in dylib built for iOS, file for architecture arm64'
디버깅이 진짜 프로그래머 수명 깎아먹는 1등 공신.하지만 프론트 (특히 iOS)는 평생을 환경설정과 에러에 맞서야 한다.일단 오늘 뜬 에러는 agora_rtc_engine 패키지 때문이다.pub get 까지는 잘됐는데
velog.io
간략하게 설명해보자면, 시뮬레이터는 실제 아이폰의 CPU로 구현되는 것이 아니라 맥북 CPU를 그대로 따라간다
(20년도 맥북까지는 x86_64, 21년도 맥북부터는 arm64) 이것때문에 호환성 문제가 생겨 안나오는것이다!
이렇게 지정해주면 아주 잘~나온다!

여기서 또 다른문제!
저렇게 arm64를 지정해버리면 패키지를 하나도 쓸수가없다, 왜냐?
패키지를 추가하면 패키지는 또 x86_64버전으로 사용하기 때문이다.
카카오맵만 띄우는걸 연습한다면 저 방법도 상관없겠지만, 팀프로젝트를 진행할때 저렇게 사용하면 패키지를 하나도 사용하지못한다,,,
예시를 보여주자면, 아래와 같다!

보이는가,,,아주 개같이 오류가 떠버린다,,,,
그렇다면 이런 경우에는 어떻게 하냐면, Rosetta로 열어주면 해결된다!

다시다시 해보면,,,! 깔끔하게 나오는것을 확인할 수 있다!

위에 커스터마이징한 마커가 궁금하다면?
다음 게시물을 참조해주쎄요~!~!

위에 적은 블로그 외에도 이것저것 참고했던 티스토리를 아래 적어본다!
https://blog.5anniversary.dev/47
[iOS] Kakao/Daum Map 연동
안녕하세요~!! 5anniversary입니다~!~!~!~!~!~!~!~! 이번 포스팅에서는 카카오, 다음 맵 연동을 해보려구 해요~! 카카오 개발자 지원 사이트, API 문서 사이트를 참고해서 만들었습니다 평소에 카카오 맵
blog.5anniversary.dev
https://roniruny.tistory.com/171
[iOS] KakaoMap API 써보기
KakaoMap API 써보기 굉장히 오랜만에 왔다.. 티스토리.. 이제 꾸준히 써야지.. 자료 - 카카오 공식 문서 - Kakao 지도 API - 위도경도 찾기 - 위도경도 찾기 위도경도 찾기 위도경도 찾기, 미국기준 미세
roniruny.tistory.com
https://iosminjae.tistory.com/15
[IOS][SWIFT] 카카오맵(Kakao Map) 커스텀하기!(현재위치, 마커 메소드화)
안녕하세요:) 오늘은 어제 작성한 카카오맵 띄우기를 커스텀 해본 내용을 작성하기로 했습니다!! 😁 먼저 커스텀한 내용을 말씀드리면, 위치 권한 받아와서 현재 위치 보여주기! (마커를 찍고,
iosminjae.tistory.com
'iOS' 카테고리의 다른 글
[iOS] HandsUp Project #1 (0) 2023.09.28 [iOS] KakaoMap 마커 커스터마이징 (0) 2023.02.03 [iOS] KakaoSocial 로그인 구현 (0) 2022.11.28 [iOS] 10주차 세미나 정리 (2) 2022.11.28 [iOS] Alamofire를 이용한 공공데이터 API 이용 (0) 2022.11.26