Swift Package Manager
Swift Package Manager (SPM) is Apple’s native dependency management tool. This recipe shows how to build and test projects using swift build and swift test.
Complete YAML
Section titled “Complete YAML”name: Swift Package Buildplatform: iosenvironment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Resolve dependencies run: swift package resolve
- name: Build run: swift build
- name: Run tests run: swift testKey Points
Section titled “Key Points”- Package Resolution:
swift package resolvedownloads and resolves all dependencies defined inPackage.swift - Build:
swift buildcompiles your library or executable - Testing:
swift testruns all test targets defined in your package manifest - No Pod Install: Unlike CocoaPods, SPM doesn’t require a separate install step
Enhanced Version with Build Configuration
Section titled “Enhanced Version with Build Configuration”name: Swift Package Buildplatform: iosenvironment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Resolve dependencies run: swift package resolve
- name: Build (Debug) run: swift build
- name: Build (Release) run: swift build -c release
- name: Run tests run: swift testSPM with Platform-Specific Code
Section titled “SPM with Platform-Specific Code”For projects targeting multiple platforms:
name: Swift Package Multiplatform Buildplatform: iosenvironment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Resolve dependencies run: swift package resolve
- name: Build for macOS run: swift build -Xswiftc -suppress-warnings
- name: Run tests run: swift test -Xswiftc -suppress-warningsCommon SPM Commands
Section titled “Common SPM Commands”swift build— Debug buildswift build -c release— Release buildswift test— Run all testsswift test --filter SpecificTest— Run specific testswift package describe— Show package information