[SPM] 04. SPM 라이브러리 소스 접근 (resources, dependencies 사용)
안녕하세요. 물먹고하자 입니다. Swift Package Manager(이하 SPM) 네번째는 저번시간에 이어 라이브러리 접근관련된 내용입니다.
소스접근, 리소스접근, SPM 내 라이브러리 추가하기 사용 이렇게 내용 작성했습니다.
바로 시작!
(오늘도 이미지가 많아요)
1. 접근제어
언제나 시작전 메이져급 라이브러리들이 어떻게 구성되었는지 확인해본다! (Alamofire 참조했음.)
접근제어 작성했던 주소 : https://xodhks0113.blogspot.com/2019/10/swift.html
언제나 공부는 했지만 기억나지 않았다.... 실제 프로젝트 사용하면서 workspace 내에서 open 은 사용을 안했는데, 이번에 한번 더 깨닫게 된다 ㅋㅋ... 다음
접근제어 구분 변경
open 으로 변경된 형식에서 정상적으로 접근되는걸 확인 할 수 있다!
2. 리소스 접근 (resources)
이번에는 asset (이미지), ViewController(+Xib)를 호출하는 테스트를 진행해 보려고 함.
기본생성만 해놓고 (nibName: bundle) 호출 함.
역시나 안됨. bundle 에 해당 nibName 을 찾을 수 없다고 함.
다시 라이브러리로 가고 접근해야하는 resource(임의 제가 만듬) 파일을 하나의 폴더로 묶고
targets > resources 에 해당 폴더명 추가함.
단, bundle: .module 구문이 SPM 내부에서만 사용이 가능해서 생성자로 위와같이 구성해줌.
이후 샘플소스에서 호출시
정상적으로 접근되고 Xib 파일 열림!
3. SPM 내 라이브러리 추가하기 (dependencies)
샘플로 SnapKit 라이브러리를 추가해본다.
package > dependencies 의 .package(url:) 구문을 작성해준다.
보통 메이져급 라이브러리는 Git 소스에 어떻게 추가하라고 작성해 놓아서 편했음.
SnapKit : https://github.com/SnapKit/SnapKit
추가하고 나면, 자동으로 다운로드 받아지고, .resolved 파일이 생성된다.
(아직까지는 정확히 어떤역할 하는지 모르지만, 건들지 않는다.)
아.. import는 또 안됨 뭐지.
dependencies 이후 target의 .product(name:, package:) 추가해주고,
사용하는 라이브러리의 최소 지원 platforms 정보가 있다면, 해당 정보도 추가해줘야한다.
이후 정상적으로 import 됨.
샘플 SnapKit 소스 작성!
기존 프로젝트의 SnapKit 받은 소스를 지우고,
JWLibrary 업데이트 진행
내 Packages 에는 SnapKit이 없는데, 정상적으로 다운로드 받아짐.
마지막 확인 라벨 SnapKit 붙은거 확인
기존 프로젝트의 import SnapKit 도 정상적임.
마무리
오늘까지의 SPM 테스트로 일단 모듈화 시킬 부분을 간단하게 테스트 하였는데, 아직은 SPM Package내 func은 다 알지는 못하였지만, 어떤 형식으로 사용할 수 있는지도 확인은 한 것 같다.
다음번은 회사전용 라이브러리 구조 잡아보면서 적용해봐야겠다!
끝.
댓글
댓글 쓰기