믿기지 않겠지만, 아직도 카카오맵은 Swift를 지원하지 않는다. 이번에 SwiftUI에서 되는지 테스트 해보다가 다행히 표시 되길래 남겨놓는다.
- http://apis.map.kakao.com/ios/guide/ 에서 최신 라이브러리 다운로드
DaumMap.framework
를 드래그해서[프로젝트] - Frameworks
에 넣기Targets - [Project] - General - Frameworks, Libraries...
에서DaumMap.framework
를Embed & Sign
으로 변경Build Phases - Copy Bundle Resources
에DaumMap.framework
안의이미지
들을 추가(Info.plist
,DaumMap
파일은 추가하면 안됨.Copy items if needed
체크 해제)- 이걸 안하면 내 위치 마커 같은게 표시 안됨
-
New Group without Folder
로 적당한 곳에 몰아넣으면 보기 편하다
Build Phases - Link Binary With Libraries
에 아래 라이브러리 추가- DaumMap.framework – DaumMap (팝업에서 Add Other 눌러서 찾기)
- libsqlite3.tbd
- 아래 목록은 그래도 오류가나면 하나씩 추가해보기
- libxml2.tbd libc++.tbd
- QuartzCore.framework
- CoreLocation.framework
- SystemConfiguration.framework
- OpenGLES.framework
Build Setting - Objective-C Automatic Reference Counting
을NO
로 변경- 프로젝트 최상위 폴더 안에
Kakao-Map-Bridge-Header.h
파일 추가(Podfile이 만들어지는 곳. 경로 변경 오류 회피용)
// Kakao_Map_Bridge_Header_h.h #ifndef Kakao_Map_Bridge_Header_h #define Kakao_Map_Bridge_Header_h #import <DaumMap/MTMapView.h> #endif /* Kakao_Map_Bridge_Header_h */
Build Setting - Objective-C Bridging Header
에Kakao-Map-Bridge-Header.h
추가(폴더 경로 주의)
$(PROJECT_DIR)/Kakao-Map-Bridge-Header.h
- https://developers.kakao.com/apps 에서 번들ID로 key 받아서 Info.plist에
KAKAO_APP_KEY
에 넣기
이렇게하면 카카오맵이 표시된다. 근데 다른 화면으로 이동해도 계속 로그가 찍히는걸로 봐선 메모리 해제가 안되는 것 같다 ㅠㅠ
struct KakaoMapView: UIViewRepresentable { func makeUIView(context: Context) -> MTMapView { let view = MTMapView(frame: .zero) view.currentLocationTrackingMode = .onWithoutHeading view.showCurrentLocationMarker = true return view } }