Source-language matrix
| Consumer target | Analysis | AUTO requirement |
|---|---|---|
| Swift | Supported | Complete target profile and a mapping that explicitly supports Swift. |
| Objective-C | Supported | Complete target profile and explicit Objective-C consumer evidence in the mapping. |
| Mixed Swift and Objective-C | Supported | The same mapping must explicitly support both languages. |
| Objective-C++, C, or C++ | Profiled | REVIEW unless the exact mapping explicitly supports every present language. |
| Incomplete or unknown PBX source profile | Reported | Never 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
| Integration | Behavior |
|---|---|
| Native Xcode + CocoaPods | Primary scope. Supported dependencies may be migrated partially while remaining pods stay under CocoaPods. |
| Carthage | Detected from Cartfiles or Xcode integration. Confirmed presence prevents AUTO; PkgLift neither interprets nor changes Carthage state. |
| React Native | use_react_native! is reported as a typed project marker and prevents AUTO. |
| Flutter | flutter_install_all_ios_pods is reported as a typed project marker and prevents AUTO. |
| Capacitor | capacitor_pods is reported as a typed project marker and prevents AUTO. |
| Kotlin Multiplatform | No speculative heuristic. Generated or local pods and dynamic declarations remain subject to existing conservative rules. |
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.