Skip to content

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.

name: Swift Package Build
platform: ios
environment:
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 test
  • Package Resolution: swift package resolve downloads and resolves all dependencies defined in Package.swift
  • Build: swift build compiles your library or executable
  • Testing: swift test runs all test targets defined in your package manifest
  • No Pod Install: Unlike CocoaPods, SPM doesn’t require a separate install step
name: Swift Package Build
platform: ios
environment:
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 test

For projects targeting multiple platforms:

name: Swift Package Multiplatform Build
platform: ios
environment:
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-warnings
  • swift build — Debug build
  • swift build -c release — Release build
  • swift test — Run all tests
  • swift test --filter SpecificTest — Run specific test
  • swift package describe — Show package information