“Multiple Xcode projects or workspaces were found”
Choose the intended workspace and project explicitly. Use paths relative to --path, for example:pkglift analyze --path . --workspace Workspaces/Products.xcworkspace --project Projects/App.xcodeproj
PkgLift refuses to select the first candidate because that could link a package to the wrong target.
“The Git worktree is dirty” after generating a plan
Review .pkglift/plan.json, then keep only that generated file from appearing as an untracked change. For a one-off test, add .pkglift/plan.json to the repository-local .git/info/exclude. Commit or stash every other change before --apply.
Build verification requires an explicit scheme
Run a shared scheme already known to build: pkglift verify --build --scheme MyApp. For workspaces, PkgLift passes the validated scheme to both SwiftPM resolution and the final build.
A known pod is still REVIEW or UNKNOWN
Check the exact identifier, including any subspec, and the stable version in Podfile.lock. A base pod mapping does not automatically cover arbitrary subspecs. Older versions below a mapping’s verified minimum also remain non-automatic.
A verified mapping is REVIEW because of source languages
PkgLift requires a complete PBX target profile and explicit mapping support for every consumer language. Mixed Swift and Objective-C targets require both values. Unknown file types, incomplete synchronized groups, or C-family sources remain review-only unless the exact evidence contract covers them.
Carthage or a cross-platform integration prevents AUTO
This is an intentional project-level boundary. PkgLift reports Carthage, React Native, Flutter, or Capacitor integration but does not interpret or rewrite its dependency graph. Keep the migration manual or isolate a native Xcode project whose ownership can be proven.
The Podfile contains dynamic Ruby or post_install
This is expected to force conservative review. PkgLift statically parses the Podfile and does not execute Ruby to infer computed dependencies or hook behavior. Keep those entries under CocoaPods or perform a manual, project-specific migration.
The project failed before migration
Establish a valid baseline build with the same scheme, destination, SDK, and configuration first. PkgLift cannot distinguish a migration regression from a pre-existing build failure without that baseline.
“Could not find the bundled registry”
Keep the PkgLift_PkgLiftRegistry.bundle adjacent to the installed executable. The Homebrew formula installs both under libexec and creates the command symlink for you. Reinstall from the official tap if the bundle was moved or deleted.
Package resolution or build fails with private details in output
Do not paste raw project logs into a public issue without review. Run pkglift diagnostics --path . --output pkglift-diagnostics.json, open the JSON, and share only the minimized fields you approve. Xcode-generated error output can still contain project-specific information.
Collect a privacy-preserving report
pkglift diagnostics \
--path . \
--output pkglift-diagnostics.json
The report contains tool versions, counts, safety flags, Git state, and typed failure stages. It omits source code, complete Podfiles, dependency and target names, repository URLs, changed filenames, arbitrary errors, and absolute user paths.