依赖管理与 CI
SPM、CocoaPods、Fastlane。
30 分钟
依赖管理与 CI
iOS 依赖管理以 Swift Package Manager(SPM) 为主,CocoaPods 仍见于老项目;Fastlane 自动化构建与发布。对照 /roadmaps/ios「Dependencies & CI」节点。
学习目标
- 用 SPM 添加第三方库(如 Alamofire、Kingfisher)
- 了解 CocoaPods 的 Podfile 工作流
- 配置 Fastlane 或 Xcode Cloud 基础 CI
- 对照 Maven/Gradle 与 GitHub Actions
核心概念
Swift Package Manager
Xcode → File → Add Package Dependencies,或 Package.swift:
// Package.swift(库项目)
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "TrackKit",
platforms: [.iOS(.v16)],
products: [
.library(name: "TrackKit", targets: ["TrackKit"]),
],
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.8.0"),
],
targets: [
.target(
name: "TrackKit",
dependencies: ["Alamofire"]
),
.testTarget(
name: "TrackKitTests",
dependencies: ["TrackKit"]
),
]
)
SPM 与 Xcode 深度集成,无需额外工具链;Apple 官方推荐。
CocoaPods
# Podfile
platform :ios, '16.0'
use_frameworks!
target 'CodeRoadMap' do
pod 'Alamofire', '~> 5.8'
pod 'SnapKit', '~> 5.6'
end
pod install # 生成 .xcworkspace,之后用 workspace 打开
pod update # 更新依赖
CocoaPods 生态历史久,部分库仅提供 Podspec;新项目优先 SPM,必要时混用。
Fastlane 自动化
# fastlane/Fastfile
default_platform(:ios)
platform :ios do
desc "运行单元测试"
lane :test do
run_tests(scheme: "CodeRoadMap")
end
desc "TestFlight 上传"
lane :beta do
build_app(scheme: "CodeRoadMap")
upload_to_testflight
end
end
Fastlane 统一 build → test → sign → upload 流程;配合 GitHub Actions / GitLab CI 在 push 时触发。
与 Java/Spring 或 React 对照
| iOS | Java | Node / React |
|---|---|---|
| SPM | Maven Central | npm |
| CocoaPods | 较少用 | — |
| Xcode Build | mvn package |