Explicit boundaries

Compatibility is evidence, not a language assumption

PkgLift performs partial CocoaPods-to-SwiftPM migration for native Xcode projects. It profiles consumer target sources from PBX metadata and fails closed when language or integration evidence is incomplete.

Source-language matrix

Consumer targetAnalysisAUTO requirement
SwiftSupportedComplete target profile and a mapping that explicitly supports Swift.
Objective-CSupportedComplete target profile and explicit Objective-C consumer evidence in the mapping.
Mixed Swift and Objective-CSupportedThe same mapping must explicitly support both languages.
Objective-C++, C, or C++ProfiledREVIEW unless the exact mapping explicitly supports every present language.
Incomplete or unknown PBX source profileReportedNever AUTO.

PkgLift reads PBX metadata, not source contents. Missing file references, unknown compiled file types, and file-system-synchronized root groups make a profile incomplete. A package’s implementation language is not proof that every consumer language can import it safely.

Project-integration matrix

IntegrationBehavior
Native Xcode + CocoaPodsPrimary scope. Supported dependencies may be migrated partially while remaining pods stay under CocoaPods.
CarthageDetected from Cartfiles or Xcode integration. Confirmed presence prevents AUTO; PkgLift neither interprets nor changes Carthage state.
React Nativeuse_react_native! is reported as a typed project marker and prevents AUTO.
Flutterflutter_install_all_ios_pods is reported as a typed project marker and prevents AUTO.
Capacitorcapacitor_pods is reported as a typed project marker and prevents AUTO.
Kotlin MultiplatformNo speculative heuristic. Generated or local pods and dynamic declarations remain subject to existing conservative rules.
A detected integration is a boundary, not a migration target. PkgLift does not execute integration scripts, infer their dependency graph, or rewrite their generated state.

CocoaPods remains usable

CocoaPods has announced a plan to make the Specs trunk read-only, currently targeting December 2, 2026. Existing podspecs, CDN access, and builds are expected to continue. PkgLift therefore focuses on reviewable partial migration, not an emergency all-or-nothing conversion. Read the official CocoaPods plan for the current timeline.

Use the migration guide Review the safety model