-
회사 코드 private 라이브러리화 회상 (1) - CocoaPodSwift 2022. 10. 27. 00:38
회사 코드를 라이브러리화 시켜야하는 일이 생겨서 진행했다.
선택지는 두 가지였다 cocoapod, spm
라이브러리를 private하게 해포해야 했다.
우선 cocoapod으로 진행한 것부터 적어본다. (public으로 할 경우 cocoapods trunk에 배포하면 됨으로 아래 방법과는 정말 약간 다르다)
평소에는 cocoapod을 pod install, pod update 정도로만 사용했지, 이렇게 깊게 파본 적은 처음이었다.
가장 처음 멘붕 왔던 것은 spec repo와 pod repo의 혼동이었다. 처음에는 무작정 따라하는데 2~3일 동안 repo를 하나만 파고 진행해서진도가 나가지를 않았었다. 하위 세가지의 개념을 명확히 하여 다른 블로그를 참고할 때 혼동이 없었으면 한다.
Pod.spec = 팟 라이브러리의 버전을 명시한다. (소스 위치, 이름, 버전과 같은 메타데이터 등)
pod repo = 내가 생성한 라이브러리를 저장하는 git repo
spec repo = 라이브러리를 public하게 올리려면 cocoapods trunk에 올려야하는데, private 라이브러리의 경우 별도로 pod spec을 저장하는 저장소를 추가해주어야 함. 따라서 별도로 pod spec을 저장하는 repo가 spec repo다음 멘붕 왔던 곳은 소스를 저장하는 Classes다. pod lib reate "라이브러리 이름" 후에 ReplaceMe.swift 파일을 수정해서 막 재밌게 소스 추가하고 있는데 정상적으로 돌지를 않는다.. 그래서 보니 Classes 폴더에 소스가 추가가 안되어 있던 것이다. 나 같은 경우 XCode에서 소스를 추가한 후에 일일이 Finder에 들어가서 Classes 폴더로 옮겨주었다. (Classes 파일은 Pod.spec에 보면 소스 파일 위치가 어디서 읽고 있는지 확인할 수 있다. 거기서 변경해주면 된다.) 다른 분들은 어떻게 진행하는지 매우 궁금했다.
이러쿵 저러쿵 해서 pod repo를 완성해서 git에 push하고, spec repo도 git에 tag 달아서 push 완료해서 사용하고자 했다. 새로운 프로젝트를 하나 생성해서 pod init -> open podfile 후에 private한 spec repo라 맨 위쪽에 아래 이미지 처럼 source 'spec repo 주소'를 넣어주었는데, 이상하게 읽어오지를 못했다. 분명 XCode -> Targets -> Signing & Capablitites -> Team 을 모두 확인했는데, XCode에 로그인한 git 계정도 접근가능한 곳인데 이상하게 불러오지를 못했다.
이와 같은 이슈를 3번 정도 반복했을때 시간을 고려하여 spm으로 넘어가기로 결정했다.
'Swift' 카테고리의 다른 글
회사 코드 private 라이브러리 회상 (3) - 새로 알게된 점 (0) 2022.10.27 회사 코드 private 라이브러리화 회상 (2) - SPM (0) 2022.10.27 Swift 상수, 구조체가 좋을까 Enum이 좋을까? (1) 2021.02.13 MVC 패턴이란? (0) 2020.12.22 Swift - UIViewController의 역할 (0) 2020.12.21