Skip to content

Package 외부 모듈로 빼서 사용해보기

sunghun kim edited this page Jan 8, 2023 · 2 revisions

🏠 동네한입 팀에서는 호영님께서 Package를 이용한 모듈화 작업을 진행해주셔서(최고..👍) 편하게 package를 사용하고 있었습니다.

갑자기 왜..?

시뮬레이터로만 작업을 하다 실기기로 빌드를 한번 해보았는데

스크린샷 2023-01-04 오후 4 06 14

..? 기존에 잘 나오던 폰트와 컬러들이 출력이 되지 않는 상황이 발생했습니다..

그래서 뭐가 문제지 하면서 이것저것 찾아보다가

스크린샷 2023-01-08 오전 9 18 12 스크린샷 2023-01-08 오전 9 18 04

Target에는 Core, Network, UI package들이 들어가있는데, Project의 Dependencies 부분에 들어가있지 않은 모습을 하고 있었습니다.

이 부분을 해결하려면 기존에 추가한 package들을 배포를 해야합니다. 사실 이 작업이 하는게 맞나.. 진짜 문제가 이건가..

생각은 했지만 다른 방법은 도저히 찾을 수 없었고 이것 또한 경험이 될 수 있다고 생각이 들어 작업을 진행했습니다.


Swift Package 배포하기

사실 이미 호영님께서 만든 package를 배포만 하면 돼서 생각보다 할 일은 많지 않았습니다.

스크린샷 2023-01-08 오전 9 31 32

자 배포용 패키지 프로젝트 하나 만들어주시고~

스크린샷 2023-01-08 오전 9 34 56

패키지들을 새로 만든 패키지 프로젝트에 복사해줍니다.

스크린샷 2023-01-08 오전 9 38 05

그 다음 깃허브 레포를 하나 만들어줍니다. 외부 라이브러리를 SPM으로 추가할 때 깃허브 주소를 많이 넣잖아요?? 우리도 그 주소 한번 가져봅시다.

public, private 둘 다 가능하다고 합니다. 저는 굳이 private 할 이유가 없으니 public으로 만들었습니다.

레포를 만들고 위에서 만든 배포용 패키지를 커밋해주고 push를 하면..

스크린샷 2023-01-08 오전 9 43 07

짠.. 이렇게 정상적으로 레포가 생성됐습니다!

자 이제 프로젝트에 패키지를 추가하러 가볼까요??

스크린샷 2023-01-08 오전 9 45 25

URL 부분에 방금 만든 레포 주소를 넣어주겠습니다..!

가보자 가보자 ㅋㅋ~

스크린샷 2023-01-08 오전 9 47 58 스크린샷 2023-01-04 오후 6 15 51

오오.. (박수세번) 이렇게 패키지를 추가해서 사용할 수 있게 됐습니다..!!


그래서 문제 해결은 됨?

사실 패키지를 추가하고 나서는 속으로는 '절대 실패할리가 없다. 아니 실패해서는 안된다.'라고 생각했습니다..

근데.. 패키지를 추가했음에도 똑같은 문제가 발생했습니다.

자포자기하고 Assets 폴더를 보고 있었는데 '설마'하는 생각이 들었습니다.

스크린샷 2023-01-04 오후 10 13 31

네.. 제 폰은 다크모드 상태였고 Color Set의 모든 다크모드 color가 white로 세팅이 되어 있었습니다.

라이트모드로 바꿔보니 전부 다 정상적으로 출력이 되더군요.. 처음부터 문제가 없었던겁니다.. ㅎㅎㅎㅎㅎㅎㅎ;;

그래도 이것저것 삽질을 하면서 좋은 경험이었다고 생각이 드네요..


스크린샷 2023-01-08 오전 10 05 10

이 글을 빌려서 제 호들갑에 같이 고민해주신 우리 iOS 팀원분들 감사합니다~


[참고]

Swift Package 의존성 추가, 생성, 배포 방법

[SwiftPM] Swift Package Manager를 이용하여 패키지를 통합 관리하기 - Proxy Module