大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
依赖管理与 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 | npm run build |
| Fastlane | Jenkins / GitHub Actions | GitHub Actions |
| Code Signing | — | — |
| Xcode Cloud | — | Vercel |
Spring 项目 CI 常见 GitHub Actions + ./mvnw test;iOS 额外需 证书与 Provisioning Profile 管理(Match 可共享)。
练习
- 用 SPM 引入 Alamofire,发一个 GET 请求
- 编写 Fastlane
testlane,本地跑通 - 在 GitHub Actions 配置
xcodebuild test(macOS runner)
小结
SPM 首选依赖;Fastlane + CI 自动化交付。 下一课测试与调试。见 ios-essentials。