Analyze
Discover nested projects, workspaces, Podfiles, targets, and locked dependency versions.
PkgLift analyzes native Xcode projects, creates a reviewable migration plan, and applies only dependency changes backed by exact evidence.
brew install Alexsvensson99/tap/pkgliftApple Silicon · macOS 14 or later · MIT licensed
$ pkglift analyze Scanning MyApp.xcworkspace… Found 3 direct CocoaPods dependencies. $ pkglift plan AUTO Alamofire 5.9.1 exact mapping + supported lockfile version REVIEW LegacyAnalytics external source requires human review UNKNOWN InternalUI no exact registry evidence Plan saved to .pkglift/plan.json $ pkglift migrate Dry run complete. No project files changed. $ pkglift migrate --apply Applied 1 reviewed AUTO migration. Preserved 2 CocoaPods dependencies. $ pkglift verify --build --scheme MyApp ✓ package linkage ✓ SwiftPM resolution ✓ Xcode build
PkgLift now records bounded, credential-redacted provenance for supported literal :git declarations and checks it against CocoaPods lockfile evidence.
REVIEW, BLOCKED, or UNKNOWN. They never authorize AUTO migration.Literal Git declarations are reconciled with lockfile source and checkout evidence.
Mutable, unpinned, incomplete, conflicting, and unsupported evidence stays visible.
User information, credentials, queries, and fragments are stripped before JSON is created.
Changed or lossy external evidence stops mutation before project files are written.
PkgLift separates discovery, decision-making, mutation, and verification so every risky transition remains visible.
Discover nested projects, workspaces, Podfiles, targets, and locked dependency versions.
Classify every direct dependency and save a reviewable, typed migration plan.
Dry-run by default. Apply only the reviewed entries classified as AUTO.
Check package-product-target linkage, resolve SwiftPM, and optionally run an Xcode build.
Ten public projects are pinned and exercised through analysis, planning, and dry run without upstream mutation. Only a separate repo-owned fixture is allowed to reach apply and build verification.
Explore all pilot outcomesKnown dependencies move only when project context preserves the full evidence chain.
Dynamic Ruby and install hooks stop otherwise plausible mappings.
A nested local dependency is detected and deliberately preserved.
An exact literal declaration still stays put when registry evidence is absent.
Exact mapping, supported locked version, verified product and target, plus complete consumer-language evidence.
A plausible path exists, but unsupported project context or judgment is required.
The project contains a construct that prevents a safe automatic migration.
PkgLift does not invent a repository URL, product, target, or compatible version.
In the repo-owned mixed-language fixture, PkgLift migrated exactly SDWebImage, resolved SwiftPM, built for the simulator, and preserved every source and resource hash.
The mixed Swift and Objective-C target built before migration.
The complete AUTO set was exactly SDWebImage.
Only the disposable repo-owned fixture was mutated.
SwiftPM resolution, simulator build, and protected hashes passed.
A practical, review-first path from installation to verified build.
Source-language evidence and explicit project-integration boundaries.
Resolve dirty worktrees, ambiguous projects, missing schemes, and conservative refusals.
Understand exact mappings and contribute upstream-backed evidence.
Install PkgLift, run analyze, and review what can move safely before generating a plan.