개발할 때 유용한 패키지들을
Swift Package Manager, CocoaPods, Carthage를 통해서 Dependancy 세팅을 자주 하는데요.
매번 유용한 라이브러리들을 사용하기만 하면서,
이런 건 어떻게 배포하는 걸까? 싶었는데 이번 기회에 알아보게 되었습니다.
생각보다 쉽게 배포가 되었습니다.
1. Github에서 Public Repo 생성
2. 로컬에 클론 받기
3. 터미널에서 클론 받은 경로로 들어가서 아래 명령어 실행
swift package init
실행하고 나면 아래와 같이 파일들이 생깁니다.
(LICENSE 파일은 Github에서 생성되어 클론받은 파일)
4. Package.swift, README.md 및 Sources, Tests 작성해 줍니다.
저는 Package.swift 파일은 거의 그대로 두고,
README는 라이브러리에 대한 설명을 마크다운으로 적절히 넣어주었습니다.
Sources에 파일은 배포할 내용으로 작성해 줍니다.
Tests는 배포하지 않으려면 삭제하고, Package.swift에서도 타겟을 제거해 줍니다.
저는 배포할 내용을 테스트해 볼 수 있는 간단한 Test코드를 작성해 두었습니다.
5. (Xcode, SourceTree, Fork 등) 각자 사용하는 툴로 소스를 Push 해줍니다.
여기까지만 해주어도, Xcode의 SPM에서 Dependancy 설정으로 내려받아서 확인할 수 있습니다.
하지만 여기까지만 하면 사용자는 main브랜치만 받게 됩니다.
추가로 publish release까지 진행하여, 버전관리까지 해봅니다.
6. 버전으로 release 할 버전명을 태그를 만들어주고, Push를 해줍니다.
7. Github 레포에서 Release -> 'Draft a new release'
8. 아까 Push 해둔 태그를 선택해 주고,
release 내용을 작성해 주고 하단에 Publish release를 해줍니다.
여기까지 하면 release 배포가 끝나고,
사용자는 main 브랜치가 아닌 원하는 버전에 맞춰서 받을 수 있게 됩니다.
이렇게 SPM으로 패키지를 배포한 결과는 아래와 같습니다.
(이 패키지를 이제 CocoaPods으로도 함께 배포할 수 있도록 추가해 보고 포스팅을 다시 해보겠습니다)
https://github.com/redxoul/AESwift
GitHub - redxoul/AESwift: Data and NSData Extension made for AES encryption/decryption only with Swift. AES-128, AES-192, AES-25
Data and NSData Extension made for AES encryption/decryption only with Swift. AES-128, AES-192, AES-256 encryption/decryption is supported. - GitHub - redxoul/AESwift: Data and NSData Extension mad...
github.com