Tong's Blog

[iOS] 라이브러리 만들기 (2) - Cocoapods 라이브러리에 SPM 이식하기 본문

iOS

[iOS] 라이브러리 만들기 (2) - Cocoapods 라이브러리에 SPM 이식하기

통스 2021. 1. 2. 19:55
반응형

안녕하세요.

 

지난 포스트에서는 자기만의 라이브러리를 Cocoapods을 통해 만들고 배포하는 법에 대해 알아보았습니다.

하지만 SPM(Swift Package Manager)가 나타나고 많은 라이브러리들이 SPM을 지원하기 시작했습니다.

개인적으로 서서히 SPM으로 라이브러리 의존성이 넘어가지 않을까 생각하고 있습니다.

 

그러면 이미 만들어둔 Cocoapods에 SPM도 같이 사용할 수 있게끔 만드는 방법을 알아보겠습니다.

 

우선 터미널로 우리가 지난번에 만들어둔 Cocoapods 라이브러리 프로젝트 폴더로 이동합니다.

그리고 다음의 명령어를 입력합니다.

 

swift package init

 

그러면 프로젝트 폴더가 다음과 같이 보일 겁니다.

이제 Package.swift 파일을 통해 SPM을 위한 프로젝트를 열 수 있게됩니다.

 

이렇게 되면 이제 우리의 spm을 다른 프로젝트에서 사용할 수 있게 되지만 실제로 우리가 구현한 기능을 사용할 수 있는 상태가 되진 않습니다.

 

우리가 cocoapods에서 작성한 내용은 아래 초록색 경로에 있는 Classes/TGSampleLibrary.swift에 있지만

spm에 구현부는 위에 빨간색 경로에 위치한 곳에 있어야 합니다.

 

초록색 부분의 있는 swift 파일을 위로 옮겨보겠습니다.

이렇게 바뀌게 되었으면 코코아팟에도 영향을 미치게 되므로

코코아팟의 경로를 새로 세팅해줘야 합니다.

 

다시 코코아팟 프로젝트에 들어가면 기존에 있던 swift 파일의 연결이 끊어진 것을 확인할 수 있습니다.

저는 Finder에서 Source 파일로 옮겨졌던 .swift 파일을 다시 프로젝트에 연결해주는 것으로 문제를 해결했습니다.

 

이제 프로젝트는 변경을 끝났으니 커밋 후 푸시로 github에 해당 변경사항을 적용하고

새로운 tag (0.1.x)를 적용하면 spm에서도 해당 라이브러리를 사용할 수 있게 됩니다.

 

마찬가지로 release 버전(tag)가 변경되었으므로

코코아팟도 다시 배포해서 적용시켜주면 spm과 cocoapods에서 모두 사용 가능한 라이브러리를 배포한 것입니다.

 

오늘은 cocoapods 프로젝트에 spm을 이식하는 방법에 대해 알아보았습니다.

의외로 쉽지만 저도 매번 시도할때마다 파일 위치라던지 연결이 끊어지는 버그아닌 버그가 매번 다르게 생기는 것으로 보아

확실한 방법인지는 확신을 할 수가 없습니다.

 

오류 사항이나 궁금한 점이 있으시다면 답글이나 내용 보충을 통해 알려드릴 수 있도록 하겠습니다.

감사합니다.

반응형
Comments