A GitHub Action that resolves Xcode Swift Package Manager dependencies and reports what changed.
After running, the action exposes a dependenciesChanged output that you can use to conditionally open a pull request with the updated Package.resolved.
- name: Resolve dependencies
id: resolution
uses: Quver/xcode-packages-update@v1
with:
project_file: 'MyApp.xcodeproj'
- name: Open pull request with updated Package.resolved
if: steps.resolution.outputs.dependenciesChanged == 'true'
uses: peter-evans/create-pull-request@v3
with:
branch: deps/spm-updates
commit-message: 'deps: update SPM packages'
title: 'deps: update SPM packages'
body: ${{ steps.resolution.outputs.summary }}- name: Resolve dependencies
id: resolution
uses: Quver/xcode-packages-update@v1
with:
workspace_file: 'MyApp.xcworkspace'
scheme: 'MyApp'
- name: Open pull request with updated Package.resolved
if: steps.resolution.outputs.dependenciesChanged == 'true'
uses: peter-evans/create-pull-request@v3
with:
branch: deps/spm-updates
commit-message: 'deps: update SPM packages'
title: 'deps: update SPM packages'
body: ${{ steps.resolution.outputs.summary }}Note: The scheme must be marked as shared in Xcode — Product → Scheme → Manage Schemes → check "Shared".
| Input | Required | Default | Description |
|---|---|---|---|
project_file |
Yes (if no workspace_file) |
— | Path to the .xcodeproj file. Mutually exclusive with workspace_file. |
workspace_file |
Yes (if no project_file) |
— | Path to the .xcworkspace file. Mutually exclusive with project_file. |
scheme |
Yes (if workspace_file set) |
— | Xcode scheme to use. Required with workspace_file. Must be a shared scheme. |
temporary_packages_dir_path |
No | .spm-tmp |
Temporary directory for cloned SPM sources. |
| Output | Description |
|---|---|
dependenciesChanged |
true if any package was added, removed or updated |
summary |
Human-readable list of changes, ready to use as a PR body |
- removed: old-package: 2.0.0
- added: swift-snapshot-testing: 1.18.9
- updated: firebase: 11.12.0 → 11.13.0
Found a bug or have an idea for improvement? Please open an issue. Include as much context as possible — Xcode version, Package.resolved snippet, and the full action log.