Open boycgit opened 4 years ago
Swift Package Manager(Swift 包管理器,一般简称 SwiftPM 或者 SPM)是苹果官方提供的一个用于管理源代码分发的工具,旨在使分享代码和复用其他人的代码变得更加容易。
经过本次课的学习,你将获得:
官方案例中,以 “Dealer”(发牌员) 作为案例讲解包管理的机制,其各 Modules 之间的依赖关系如下:
Dealer
:是整个 demo 程序的入口文件,该 SPM 打包结果是可执行文件(executable )DeckOfPlayingCards
:该模块直接被 Dealer
所依赖,该 SPM 打包结果"库"(library)PlayingCard
和 FisherYates
这两个 modules 都是被 DeckOfPlayingCards
依赖,且打包结果也都是"库"(library)其实 SwiftPM 和其他编程体系中的包管理器(比如 maven、 npm)理念相同,是语言生态成熟的一个体现。概念:
为方便理解,以生活中的 “快递书籍” 作为类比,Modules 就是我们想要快递的 书籍,这是我们真正有价值的物件,而 Package 则是快递公司提供的 快递包装盒,上面粘贴有快递单号和联系人信息,这样就能将你的书籍按照快递规则从 A 发往 B 那儿了。
“Swift笔记”专栏,隶属于 JSCON 专栏系列,以我自学 Swift 过程中,将个人认为不错的知识以简短视频方式呈现,通常是一些精简的教程、开发提效方法等,每则笔记约 5 ~ 10 分钟就能读完;
如何获取往期 Swift 笔记?可在微信内搜索 “JSCON简时空”或 “iJSCON” 关注,在公众号内回“swift-note” 即可获取。
先看一下效果:
$ git clone https://github.com/apple/example-package-dealer.git
$ cd example-package-dealer
$ swift run Dealer
执行完这条语句后,会在 ./.build/debug
目录下生成一个名为 Dealer
的可执行程序。
而所依赖的库的内容在目录下的 ./build/checkouts 中查阅:
Q1:执行 swift run Dealer
会报错 "xcrun: error: unable to find utility "xctest", not a developer tool or in PATH"
A: 可以参考 issue: terminated(72): xcrun --sdk macosx --find xctest 的这个解决方法,在命令行中运行:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
即可
Swift Package Manager(Swift 包管理器,一般简称 SwiftPM 或者 SPM)是苹果官方提供的一个用于管理源代码分发的工具,旨在使分享代码和复用其他人的代码变得更加容易。该工具可以直接帮助我们编译和链接 Swift packages(包),管理依赖关系、版本控制,以及支持灵活的代码分发和团队协作。