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 解決 🤷‍♂️

發布與更新 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 查看更多內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM