2021年5月15日星期六

SwiftUI 简明教程之 Swift Package Manager 的使用

本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容。

Eul 是一款 SwiftUI & Combine 教程 App(iOS、macOS),以文章(文字、图片、代码)配合真机示例(Xcode 12+、iOS 14+,macOS 11+)的形式呈现给读者。笔者意在尽可能使用简洁明了的语言阐述 SwiftUI & Combine 相关的知识,使读者能快速掌握并在 iOS 开发中实践。

概览

Swift Package Manager(SPM)是 Xcode 内置的包管理工具,支持远程公/私有库和本地库。

创建 Package Manager

创建方法

两种方法:

  • 在 Xcode 菜单栏依次选中 File > New > Package Manager
  • 在目标文件夹中使用命令:Swift package init

创建完成后,在 Sources 文件下添加代码,然后按 cmd + B 编译。如果发现编译器报错,是因为测试代码有误。如果我们不需要编写测试代码,注释即可。

目录结构

如下是一个 Package 的目录结构:

.├── Package.swift // 配置文件├── README.md // 包的功能、使用说明├── Sources // 源码目录│   └── Biu│    └── Print.swift└── Tests // 测试文件目录 ├── BiuTests │   ├── BiuTests.swift │   └── XCTestManifests.swift └── LinuxMain.swift

Package.swift 包含如下内容:

// swift-tools-version:5.3// The swift-tools-version declares the minimum version of Swift required to build this package.import PackageDescriptionlet package = Package( // 包名 name: "Biu", // 包对外提供的 products(库、可执行文件) products: [  .library(   name: "Biu",   targets: ["Biu"]), ], // 依赖的其它包 dependencies: [  // .package(url: /* package url */, from: "1.0.0"), ], 	// 包含的 targets targets: [  	// 每个 target 所需依赖  .target(   name: "Biu",   dependencies: []),  .testTarget(   name: "BiuTests",   dependencies: ["Biu"]), ])

本地添加和测试 Package

  • 新建一个 Biu_test 工程,直接将 Biu 目录拖入工程
  • General -> Frameworks, Libraries, and Embedded Content 下添加 Package
  • 导入 Package(import Biu)即可

注:如遇到无法导入或找不到 Package 的问题,可尝试退出工程或重启 Xcode 解决 🤷‍♂️

发布与更新 Package

可以使用 Git 命令,也可以使用 Xcode 内置的版本控制工具。

初次发布时,初始化 Package 为 Git 仓库,打上 Tag,再推送至远程仓库。

更新 Package 后,打上新的 Tag,Push 即可。

使用 Package

添加

我们先移除上文中的工程 Biu_test 引入的本地 Package(Biu),然后在 Xcode 中选择 File > Swift Packages > Add Package Dependency...,输入 Package 地址(https://github.com/keisme/Biu),点击 Next 安装。

安装完成后,重新运行项目,结果与预期一致。

更新

如果需要更新 Package,选择 File > Swfit Packages > Update to Latest Package Versionse

移除

在工程中找到 Swift Package Manager,移除相应的 Package。

本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容。









原文转载:http://www.shaoqun.com/a/744805.html

跨境电商:https://www.ikjzd.com/

雨果网:https://www.ikjzd.com/w/1307

巴士物流:https://www.ikjzd.com/w/2329


本文为Eul样章,如果您喜欢,请移步AppStore/Eul查看更多内容。Eul是一款SwiftUI&Combine教程App(iOS、macOS),以文章(文字、图片、代码)配合真机示例(Xcode12+、iOS14+,macOS11+)的形式呈现给读者。笔者意在尽可能使用简洁明了的语言阐述SwiftUI&Combine相关的知识,使读者能快速掌握并在iOS开发中实践。概览Swi
mail.ru:https://www.ikjzd.com/w/2232
巴士物流:https://www.ikjzd.com/w/2329
ad公司:https://www.ikjzd.com/w/1332
赞助产品广告or赞助品牌广告?卖家"黑五"如何选才能稳流量,涨单量?:https://www.ikjzd.com/home/134841
亚马逊黄金日购物意愿降低?电子商务整体搜索量下降84%:https://www.ikjzd.com/home/132109
我在日她时,她使劲叫 性感保姆的诱惑使我彻底发狂:http://lady.shaoqun.com/a/274469.html

没有评论:

发表评论