I’ve released PkgLift v0.3.0, an open-source Swift command-line tool for partially migrating CocoaPods dependencies to Swift Package Manager in native Xcode projects.
The workflow is deliberately split into analyze, plan, migrate, and verify. PkgLift only applies entries classified as AUTO, which requires an exact pod or subspec mapping, a supported locked version, a verified package product, an exact destination target, and complete consumer-language evidence. Anything incomplete remains REVIEW, BLOCKED, or UNKNOWN and stays under CocoaPods.
v0.3.0 adds stable diagnostic reason codes and remediation guidance, more literal Podfile syntax, additional exact registry mappings, and mutation-free CI policy modes. It also publishes a pinned ten-project read-only pilot matrix. Those upstream repositories are analyzed and dry-run only; apply/build verification is kept separate in a repository-owned fixture with both Swift and Objective-C consumers.
Homebrew: brew install Alexsvensson99/tap/pkglift
Repository: GitHub - Alexsvensson99/PkgLift: Safely migrate native Xcode projects from CocoaPods to Swift Package Manager · GitHub
Pilot evidence and limitations: Real-project pilot evidence — PkgLift
I’d especially value redacted reports from project shapes that remain non-automatic. A safe refusal with a reproducible reason is useful input for the next fixture or mapping; it is not something the tool should bypass.
1 Like
Following up on the earlier PkgLift introduction: version 0.4.0 is now available.
The release extends analysis for a narrow, static subset of literal external :git declarations. PkgLift now records typed source provenance and reconciles the Podfile declaration against CocoaPods lockfile evidence in EXTERNAL SOURCES and CHECKOUT OPTIONS.
A few design constraints are intentional:
- no Podfile Ruby execution;
- no network access or repository resolution;
- URL user information, credentials, queries, and fragments are removed before JSON output;
- preflight refuses changed, incomplete, lossy, conflicting, credential-bearing, or otherwise unsafe evidence before any project write.
This remains review-first tooling. External Git sources are not eligible for AUTO in 0.4.0; they remain REVIEW, BLOCKED, or UNKNOWN. Local :path sources, private authentication, Podspec generation, network repository resolution, and automatic external-source migration remain deferred rather than inferred.
The pinned, read-only XcodeBenchmark and Hammerspoon pilots now assert unpinned and incomplete-tag Git cases, matching analysis and plan provenance with a complete no-AUTO result.
Homebrew users can update with brew upgrade pkglift.