NaverMap SDK SPM 왜 지원안해줌 ?
프로젝트에서 mapKit대신 navermap을 사용하기로 결정하였는데 Tuist를 사용하여 프로젝트를
모둘화를 하게되어 cocoapods를 사용하지 못하게 되었다
그런데 naverMap SDK는 cocoapods으로만 의존성을 추가할 수 있게 되어있었다 ,,,,
https://github.com/navermaps/ios-map-sdk
아무리 찾아보아도 NaverMap SDK를 Swift Package로 만들어 놓은게 없어 직접 만들기로 했다 ,,,,
NaverLogin SDK 너도 … ?
참고한 것은 NaverLogin-SDK-iOS 이다. 여기도 cocoapods으로만 지원해줬는데
https://github.com/naver/naveridlogin-sdk-ios
https://github.com/naver/naveridlogin-sdk-ios/issues/21
다른 사용자분이 임시방편으로 SPM으로 사용가능하게 만들어준것을 보고 똑같이 만들어보기로 했다.
https://github.com/kyungkoo/naveridlogin-ios-sp
NaverLogin-SDK-iOS를 SPM으로 어떻게 만들었는지 분석해보기위해 우선 pacakage파일을 확인 해보았는데
naveridlogin-ios-sp를 라이브러리로 만들어서 외부에서 사용할 수 있게 해주었는데
Sources폴더에있는 naveridlogin-ios-sp를 확인해보니 dummy파일만 존재하고
Frameworks에 있는 xcframework을 참조하여 배포해주고 있는것이였다.
Frameworks에 있는것만 추가해서 동일한 형태로 만들어주면 될것같은데 xcframework를 어디서 가져오지
하고 생각했는데 cocoapods으로 설치해서 그대로 가져오면 될것같다라는 생각을 하게되었다.
아니다 다를까 naverLogin을 cocoapods으로 설치하고 Pods폴더 내에서 확인해보니 내가 생각한대로였다.
NaverMap-SDK-iOS 딱 대
그럼 바로 만들러 가보자. 먼저 cocoapods용 프로젝트를 하나 만들어서 NaverMap을 설치해주었다.
pod 'NMapsMap'
설치를 해주니 NMapsMap과 NMapsGeometry 두개가 설치되었다
각각의 폴더의 xcframework를 가져와서 패키지에 Frameworks폴더를 만든뒤 추가해주었다.
남은건 pacakge파일을 작성해주는 일 뿐 ~ !
let package = Package(
name: "NaverMap-iOS-SPM",
products: [
.library(
name: "NaverMap-iOS-SPM",
targets: ["NaverMap-iOS-SPM"]),
],
targets: [
.binaryTarget(
name: "NMapsMap",
path: "./Frameworks/NMapsMap.xcframework"
),
.binaryTarget(
name: "NMapsGeometry",
path: "./Frameworks/NMapsGeometry.xcframework"
),
.target(
name: "NaverMap-iOS-SPM",
dependencies: ["NMapsMap", "NMapsGeometry"]
)
]
)
패키지를 배포해보니 SPM으로 잘 동작하는 것을 확인했다 !!
패키지 만들기에 대한 글은 여기를 참조해주길
https://junbok97.tistory.com/313