前言
在程序员的世界里,大家最敬佩的当属那些流行开源框架的作者了,他们无私地将自己的成果分享出来让大家使用和学习,丰富了技术生态,活跃了技术社区。最新的开源库分发方式便是Swift Package Manager(SPM),那么如何自定义一个SPM开源库呢?本篇文章将从SPM的结构分析开始,介绍如何实现自定义SPM的完整过程。
一、SPM结构分析
分析这个库的结构,可以得知组成这个库最重要的是Package.swift 和 ClockHandRotationKit.xcframework 两部分
1.1 Package.swift 解析
Package.swift文件是用于描述和配置Swift Package Manager(SPM)项目的文件
-
swift-tools-version:这是一个注释行,用于声明构建该项目所需的最低Swift工具版本。在这个注释行中,您可以指定一个版本号,例如swift-tools-version:5.3,以确保项目在构建时使用正确的Swift工具版本。
-
import PackageDescription:这是导入PackageDescription模块的语句,该模块提供了用于描述和配置Swift包的API。
-
let package = Package(…):这是一个let语句,用于创建一个名为package的常量,它是一个Package类型的实例。在花括号内,您可以配置您的包的各个属性和设置。
-
name:这是一个属性,用于指定您的项目的名称。您可以将其设置为一个字符串,例如name: “MyProject”。
-
platforms:这是一个属性,用于指定您的包所支持的平台和最低部署版本。
-
products:这是一个属性,用于定义您的包所产生的产品(即可执行文件、库等)。它是一个包含字典的数组,每个字典表示一个产品。在每个字典中,您可以指定产品的名称(name)和目标(targets),以及其他可选属性。
-
dependencies:这是一个属性,用于定义您的包所依赖的其他包。它是一个包含Package.Dependency类型的数组,每个Package.Dependency对象表示一个依赖项。您可以通过指定依赖项的URL、版本要求和其他选项来添加依赖项。
-
targets:这是一个属性,用于定义您的包的目标(即模块或测试套件)。它是一个包含字典的数组,每个字典表示一个目标。在每个字典中,您可以指定目标的名称(name)、依赖项(dependencies)、源代码路径(path)以及其他可选属性。
1.2 targets(ClockHandRotationKit.xcframework)
这部分决定了这个库是用来做什么的,ClockHandRotationKit 这个库就是将 ClockHandRotationKit.xcframework 用SPM方式来管理和分发,ClockHandRotationKit.xcframework 可以是源代码也可以是其它二进制库。
二、创建SPM库
2.1 Xcode -> File -> New -> Package
2.2 输入项目名,点击『Create』:
2.3 Xcode 自动帮我们生成了配置文件和源码目录:
三、编写SPM库
- 删除多余文件
- 添加已经制作好的HHtestKit.xcframework(如果不知道如何制作,在文章结尾有博客链接)
- 修改Package.swift 文件
四、上传SPM库
4.1 新建一个远程仓库
4.2 提交SPM文件
4.3 添加发行版(release)
五、项目中使用
用远程仓库地址搜索
添加完成以及使用
查看库文件 sayHelloworld -> Jump to definition
相关文章
- Xcode15 Swift Package Manager(SPM)使用篇
- Xcode15 Swift Package Manager(SPM)自定义篇
- Xcode15 Swift 制作 XCFramework
- Xcode15 Shell脚本制作XCFramework
感谢您的阅读和参与,HH思无邪愿与您一起在技术的道路上不断探索。如果您喜欢这篇文章,不妨留下您宝贵的赞!如果您对文章有任何疑问或建议,欢迎在评论区留言,我会第一时间处理,您的支持是我前行的动力,愿我们都能成为更好的自己!