Swift Package Manager 库制作

Swift Package Manager 是苹果官方推出的库管理工具。类似 cocoapods。

准备事项:

  • 一个需要封装的库
  • 存放库的远程仓库,如 github、gitee、gitLab等

创建Package

创建 Package 有2种方式,命令行和 Xcode。

一、命令行

首先创建包名

mkdir SPMTest
cd SPMTest

创建 package 项目

swift package init

此时我们已经创建好了一个包项目,只需要双击 Package.swift 文件即可启动 Xcode,进行编码和测试。

我们也可以使用swift package generate-xcodeproj来生成 xcode 项目,但是一般不需要。

Tips: 对于已经存在的库, 我们可以指定源码路径, 不一定要使用默认的构建源码路径

二、Xcode

通过 Xcode 开发工具,我们也可以新建一个 Package 项目。

截屏2021-03-08 上午10.26.51

输入库名即可。

Package 文件编辑

Package.swift相当于 Cocoapods 库的 xxx.podspes文件,是对库的配置。

示例:

import PackageDescription

let package = Package(
    name: "SPMTest",
    products: [
        // Products define the executables and libraries a package produces, and make them visible to other packages.
        .library(
            name: "SPMTest",
            targets: ["SPMTest"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages this package depends on.
        .target(
            name: "SPMTest",
            dependencies: []),
        .testTarget(
            name: "SPMTestTests",
            dependencies: ["SPMTest"]),
    ]
)

默认添加 name、products、targets,还可以添加其他参数,但是需要按照顺序。

参数解释

name:库包的名称;

defaultLocalization:资源的默认本地化;

platforms:支持的最低系统平台的列表;

pkgConfig:用于C模块的名称。如果存在,Xcode将搜索.pc文件以获取系统目标所需的其他标志;

providers:系统目标的程序包提供者;

products:此软件包可让客户使用的产品列表;

dependencies:软件包依赖项列表(可空,或需要其它外部依赖);

targets:属于此软件包的目标列表(源码目录、测试目录);

swiftLanguageVersions:此软件包兼容的Swift版本列表;

cLanguageStandard:用于此程序包中所有C目标的C语言标准;

cxxLanguageStandard:用于此程序包中所有C ++目标的C ++语言标准;

测试

一、 单元测试

自行封装的库,建议写好单元测试,以便后期维护和保证库的稳定性。

二、使用测试

在库还没有推到远程仓库,或者没有发布时,本地该如何测试?

将库文件夹手动拉入项目,手动添加库

截屏2021-03-08 下午1.51.46

Tips: Xcode 可在不删除远程库的条件下,添加本地库调试(本地库会覆盖远程库),调试完成删除即可

使用

我们可以在 Xcode 的菜单栏 File -> Swift Pakcages -> Add Package Dependncy进入添加页面。

Swift Package Manager

也可以直接选择项目,进入PROJECT 选择 Swift Packages

截屏2021-03-08 上午11.43.25

复制库地址或者搜索库选择之后,选择版本号,等待下载就可以了。

Swift Package Manager

Tips: 没有发布 release 的库 只能通过 branch 或者 commit 下载代码

项目使用的 SPM 库文件路径在[appName].xcodeproj/project.workspace/xcshareddata/swiftpm/Package.resolved

更新第三方库

我们使用 Cocoapods 的时候可以随时通过 pod install 或者 pod update将库更新到最新,如果使用 Swift Package Manager 怎么更新了。

虽然Xcode会更新你的包依赖并自动解析包版本,但你可以从File > Swift Packages菜单中触发这两个动作。

如下图,选择更新库。

在这里插入图片描述

参考

Swift Package Manager介绍 – raywenderlich

如何让自己的库支持 Swift Package Manager

how to use swift package manager – Mobile Thinking: 英文介绍,包含如何创建和使用。

iOS 包依赖管理工具(五):Swift Pakcage Manager自定义篇 – 简书-青叶小小

WWDC2020 - Swift Package Manager – kemchenj

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值