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

Posted Bruce2077

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 PackageDescription

let 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 解决

以上是关于SwiftUI 简明教程之 Swift Package Manager 的使用的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 简明教程之自适应布局

自学IOS开发第3天·基础SwiftUI之动态滑动列表(上)

自学IOS开发第3天·基础SwiftUI之动态滑动列表(上)

自学IOS开发第3天·基础SwiftUI之动态滑动列表(上)

Swift之深入解析如何结合Core Data和SwiftUI

Swift之深入解析SwiftUI布局如何自定义AlignmentGuides