Xcode — Swift Package Manager
This article is extracted from the chat log with AI. Please identify it with caution.

Swift Package Manager (SPM) 是 Apple 官方推出的依赖管理工具,支持 Swift 项目的代码分发和构建。以下是它的基本使用方式:


1. 创建新包 #

# 创建一个新目录并初始化包
mkdir MyPackage && cd MyPackage
swift package init

这会生成默认目录结构:

MyPackage
├── Package.swift       # 包配置文件
├── Sources/            # 源码目录
└── Tests/              # 测试目录

2. 配置包 (Package.swift) #

修改 Package.swift 定义包的基本信息和依赖:

// swift-tools-version:5.9
import PackageDescription

let package = Package(
    name: "MyPackage",
    platforms: [.macOS(.v14)], // 支持的平台
    products: [
        .library(name: "MyLib", targets: ["MyLib"]), // 生成的库或可执行文件
    ],
    dependencies: [
        .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.8.0"), // 添加依赖
    ],
    targets: [
        .target(
            name: "MyLib",
            dependencies: ["Alamofire"] // 目标依赖
        ),
        .testTarget(name: "MyLibTests", dependencies: ["MyLib"])
    ]
)

3. 常用命令 #

# 解析和下载依赖
swift package resolve

# 编译项目
swift build

# 运行测试
swift test

# 生成 Xcode 项目(方便在 Xcode 中开发)
swift package generate-xcodeproj

# 运行可执行目标(需在 products 中定义)
swift run MyExecutable

4. 添加/管理依赖 #

  • 直接编辑 Package.swift:在 dependencies 数组中添加包的 Git 地址和版本。
  • 版本控制
    • from: "5.8.0":允许 5.8.0 及以上,但低于下一个主版本。
    • .exact("1.0.0"):精确版本。
    • branch: "main":使用特定分支。
    • revision: "a3b5c7d":指定某个提交哈希。

5. 发布自己的包 #

  1. 推送代码到 Git 仓库

    git init
    git add .
    git commit -m "Initial commit"
    git remote add origin https://github.com/yourname/MyPackage.git
    git push -u origin main
    
  2. 打 Tag 标记版本

    git tag 1.0.0
    git push origin 1.0.0
    

    其他开发者可通过你的 Git URL 和版本号引入你的包。


6. 本地调试依赖 #

若需本地修改依赖包,可在 Package.swift 中使用 pathpackage 参数:

dependencies: [
    .package(path: "../LocalPackage"), // 本地路径
    .package(url: "https://github.com/SomeRepo/SomePackage.git", branch: "dev") // 特定分支
]

注意事项 #

  • 平台兼容性:在 Package.swift 中指定 platforms 确保依赖支持目标平台。
  • 依赖冲突:多个包依赖同一库的不同版本时,SPM 会自动解决冲突(可能选择最新兼容版本)。
  • 缓存清理:遇到构建问题时,尝试 swift package clean 或删除 .build 目录。

SPM 与 Xcode 深度集成,也可直接在 Xcode 的 File > Add Package Dependencies 中通过 URL 添加包。

本文共 683 字,创建于 Mar 7, 2025
相关标签: Xcode, ByAI