let swift(16) 스위프트 패키지 매니저 Swift Package Manager 윤성관 lingostar
패키지�매니저
설치,�업데이트,�설정,�삭제를�자동화�해주는�툴�
소프트웨어의�의존성이나�버전�정보�관리�
ex)�앱�스토어�
ex)�MacPorts,�Homebrew,�CocoaPods�
ex)�Alcatraz�-�Xcode용�플러그인�패키지�매니저
패키지�컨벤션
원활한�배포를�위해�패키지�구조에�대한�규칙�정의�
앱스토어에�앱�올릴�때�패키지�검사�
엔드유저는�패키지�매니저의�사용법만�알면�됨�
앱스토어�사용법만�아시면�됩니다�(카드�비번이랑)�
원활한�배포�-�의존성�문제
Dev�Snapshot�설치
/Library/Developer/Toolchains�
/usr/bin/�
swift-build��
swift-package�
Xcode�버전에�따라�
export�TOOLCHAINS=swift�
export�PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"
매니페스트
메타데이터를�가지고�있는�파일.�화물선의�화물�리스트�
Package.swift�
스위프트�언어로�패키지�매니저의�매니페스트를�정의�
여러분,�스위프트를�배우면�프로젝트�설정도�가능합니다.
Package�클래스
내부에�Dependency�클래스를�정의�
Target에서�다시�Dependency를�enum으로�정의하기�때문
let name:String? let pkgConfig:String? let providers: [SystemPackageProvider]? var targets: [Target] var dependencies: [Dependency] var exclude: [String]
Package�클래스
SystemPackageProvider�는�enum�
case�Brew�,�Apt
let name:String? let pkgConfig:String? let providers: [SystemPackageProvider]? var targets: [Target] var dependencies: [Dependency] var exclude: [String]
Xcode�프로젝트�만들기
빈�폴더�만들기�
swift�package�init�
swift�package�generate-xcodeproj�
많은�오픈소스�프로젝트들이�SPM을�도입�
Katrina�도�SwiftyJSON등의�의존성�관리
SPM�@�GitHub
GitHub�Apple�페이지��
https://github.com/apple�
https://github.com/apple/swift-package-manager�
번역본�
https://github.com/lingostar/swift-package-manager
참고자료
Kostiantyn�Koval�(Swift�High�Performance)�
http://kostiakoval.github.io/posts/swift-package-manager�
Swift�Package�Lists�
https://github.com/donald-pinckney/swift-packages