Xcode Dependencies Analyzer
Analyzes Swift Package Manager dependencies for insights and potential issues.
When to Use
- •User asks about project dependencies
- •User experiences SPM resolution issues
- •User wants to visualize dependency graph
- •User suspects version conflicts
Usage
Run from project root (where Package.swift is located):
bash
swift ~/.claude/plugins/xcode-dx-skills/skills/xcode-deps/scripts/spm-graph.swift
Or specify a path:
bash
swift ~/.claude/plugins/xcode-dx-skills/skills/xcode-deps/scripts/spm-graph.swift /path/to/Package.swift
What Gets Analyzed
| Aspect | Description |
|---|---|
| Direct dependencies | Top-level packages your project depends on |
| Transitive dependencies | Dependencies of your dependencies |
| Version constraints | Specified version requirements |
| Resolved versions | Actual versions in Package.resolved |
| Conflicts | Incompatible version requirements |
| Depth | How deep the dependency tree goes |
Output Format
The script outputs JSON with:
- •
direct_dependencies: Your declared dependencies - •
all_dependencies: Complete list including transitive - •
dependency_graph: Adjacency list of dependencies - •
version_map: Resolved version for each package - •
conflicts: Any detected version conflicts - •
mermaid_graph: Mermaid diagram code for visualization
Mermaid Diagram
The output includes a Mermaid diagram you can render:
mermaid
graph TD
A[MyApp] --> B[Alamofire]
A --> C[SwiftyJSON]
B --> D[Foundation]
Common Issues
Version Conflict
When two packages require incompatible versions of a shared dependency.
Fix: Update version constraints or find compatible versions.
Deep Dependency Chain
When transitive dependencies go many levels deep.
Concern: Longer build times, more potential conflicts.
Outdated Packages
When newer versions are available.
Action: Review changelogs and update carefully.