🔥 Swift Package Collections 배포하기

227자
3분

Swift Package Manager는 누구나 Package Collection을 만들어서 배포할 수 있습니다. swift-package-collection-generator 프로젝트는 Package Collection 배포자들을 위한 도구들을 제공하고 있어요.

이 도구들을 활용하면 Package Collection을 손쉽게 생성하고 관리할 수 있겠죠?

예를 들어, package-collection-generate 명령어를 사용하면 다음과 같이 Package Collection을 만들 수 있습니다.

shell
$ package-collection-generate collection.json \\
  --name "My Packages" \\
  --overview "My awesome packages" \\
  --packages <https://github.com/mona/LinkedList> \\
  --packages <https://github.com/mona/StringUtils>
shell
$ package-collection-generate collection.json \\
  --name "My Packages" \\
  --overview "My awesome packages" \\
  --packages <https://github.com/mona/LinkedList> \\
  --packages <https://github.com/mona/StringUtils>

이 명령은 collection.json 파일을 생성하는데, 그 안에는 name, overview, 그리고 packages에 명시한 Package URL들이 포함됩니다.

json
{
  "name": "My Packages",
  "overview": "My awesome packages",
  "keywords": [
    "Swift",
    "Package Collection"
  ],
  "packages": [
    {
      "url": "<https://github.com/mona/LinkedList>",
      ...
    },
    {
      "url": "<https://github.com/mona/StringUtils>",
      ...
    }
  ]
}
json
{
  "name": "My Packages",
  "overview": "My awesome packages",
  "keywords": [
    "Swift",
    "Package Collection"
  ],
  "packages": [
    {
      "url": "<https://github.com/mona/LinkedList>",
      ...
    },
    {
      "url": "<https://github.com/mona/StringUtils>",
      ...
    }
  ]
}

생성된 Package Collection 파일은 package-collection-sign 명령으로 서명할 수 있고, package-collection-validate로 유효성을 검증할 수도 있습니다.

Package Collection을 업데이트할 때는 package-collection-diff 명령으로 변경사항을 쉽게 파악할 수 있습니다. 두 버전의 Package Collection 파일을 비교해서 추가되거나 제거된 Package를 알려주니까요.

이렇게 생성된 Package Collection 파일은 웹 서버에 업로드해서 다른 개발자들과 공유할 수 있습니다. 그러면 다른 개발자들은 Swift Package Manager의 Add Package Collection 기능을 통해 내 Package Collection을 추가하고 활용할 수 있게 되는 거죠.

Package Collection Generator 에 대한 자세한 내용은 아래 URL에서 확인할 수 있습니다.

YouTube 영상

채널 보기
API 응답 지연과 복잡한 에러, NestJS 인터셉터로 관리하는 방법 | NestJS 가이드
C++ 속의 펑터 | 프로그래머를 위한 카테고리 이론
관점 지향 로깅 인터셉터 구현 및 전역 바인딩 전략 | NestJS 가이드
NestJS 가드, 바이딩과 스코프 | NestJS 가이드
인터셉터와 RxJS로 캐시 시스템 구축하기 | NestJS 가이드
변환 파이프로 컨트롤러 코드 깔끔하게 만들기 | NestJS 가이드
존 매카시가 들려주는 인공지능의 탄생 이야기
Pro펑터, 입력과 출력을 동시에 다루는 펑터 | 프로그래머를 위한 카테고리 이론