Install
openclaw skills install @changjiashuai/ios-migration-expertUse when migrating iOS projects from CocoaPods to Swift Package Manager, or when planning a migration strategy for enterprise iOS dependencies. Covers dependency mapping, build settings, xcconfig translation, resource bundles, Objective-C interop, binary frameworks, and CI/CD adaptation. For iOS developers and AI coding agents involved in migration planning and execution.
openclaw skills install @changjiashuai/ios-migration-expertSystematic, dependency-first approach: audit all current CocoaPods dependencies before writing any Package.swift. Map each pod individually, handle build settings per dependency, then migrate incrementally.
Never jump straight to writing a Package.swift without auditing the existing setup first.
Podfile, Pods/, *.xcworkspace)Current Pod has SPM support?
├─ YES → Can migrate directly
│ └─ Check: same product name? resource bundle handling?
├─ NO → Is there an SPM alternative?
│ ├─ YES → Consider replacing (evaluate API differences)
│ └─ NO → Does the pod distribute as binary framework?
│ ├─ YES → Can wrap as SPM binary target
│ └─ NO → Keep in CocoaPods (hybrid), or vendor the source
Each phase has a dedicated prompt template in prompts/:
prompts/audit.md)Inventory current Podfile — list every pod, subspec, version requirement. Check for: resource bundles, xcconfig injections, script phases, module maps, bridging headers. Collect the full dependency tree.
prompts/migrate.md)Map each pod to its SPM equivalent using mappings/ database.
For each: SPM URL, product name, version compatibility, special setup.
Translate CocoaPods-generated settings:
$(inherited) from HEADER_SEARCH_PATHS, FRAMEWORK_SEARCH_PATHSOTHER_LDFLAGS flags with SPM's automatic linkingxcconfig files — eliminate CocoaPods-generated includesprompts/verify.md)Add packages in Xcode, resolve dependencies, build. Verify: no linker errors, resource bundles load, ObjC bridging intact, all imports resolve correctly.
Update CI pipeline — remove pod install step, add xcodebuild -resolvePackageDependencies. Update cache keys. Handle binary framework
distribution if applicable.
| CocoaPods | SPM Equivalent |
|---|---|
pod install | xcodebuild -resolvePackageDependencies |
pod update | Update version in Package.swift or Xcode |
Podfile | Package.swift (or Xcode project settings) |
Pods/ directory | SourcePackages/ (build artifacts) |
| Podspec | Package.swift manifest |
use_frameworks! | Default for SPM (always modules) |
#import <Module/Module.h> | import Module or @import Module |
| Script phases from pods | Manual script phase with SourcePackages/checkouts/ path |
| Resource bundles | SPM resources: parameter or asset catalog |
import Firebase doesn't exist in SPM — use per-module importsCocoaLumberjackSwift product, not CocoaLumberjackSee docs/ for detailed technical documentation on each topic.
See prompts/ for reusable AI prompt templates for each phase.
See templates/ for Package.swift templates for different scenarios.