Capacitor Plugin Spm Support

Cap-go/capgo-skills/plugins/capacitor-plugin-dev/skills/capacitor-plugin-spm-support

作者 Cap-go2cfb277a148832bdb1a835b01e4de323687b498b无许可证72 个星标收录于 2026年10月9日更新于 2026年10月9日仓库今天更新

Guides the agent through adding Swift Package Manager support to an existing Capacitor plugin. Covers Package.swift, CAPBridgedPlugin conversion, bridge cleanup, and package manifest updates. Do not use for app projects or non-Capacitor plugin frameworks.

AI 生成的概览

指导为现有 Capacitor 插件添加 Swift Package Manager 支持,包括 Package.swift 与桥接 Swift 注册。

功能
该技能引导代理将现有的 Capacitor iOS 插件从 CocoaPods 转换为 Swift Package Manager。内容涵盖收集插件信息、创建 Package.swift 清单、将插件类改为遵循 CAPBridgedPlugin、删除 Objective-C 桥接文件以及更新包元数据。它还说明了通过同步并构建示例应用进行验证的步骤。
适用场景
当希望 Capacitor 插件通过 Xcode 的包管理器而非 CocoaPods 被使用时适用。适合从 Objective-C 桥接文件迁移到桥接 Swift 注册的插件,或需要为 SPM 更新包清单与文件导出的插件。不适用于应用项目或非 Capacitor 的插件框架。
运行要求
仅为说明性内容,不附带脚本。假定已有 Capacitor 插件仓库,包含 package.json、podspec、iOS Swift 源码,以及带 capacitor.config 文件的示例或测试应用,并需要 Node/npm 工具链和 Xcode 进行构建。

Add Swift Package Manager Support to a Capacitor Plugin

Add SPM support to an existing Capacitor plugin so it can be consumed without CocoaPods.

When to Use This Skill

  • User wants a plugin to work through Xcode's package manager
  • User is converting an existing iOS plugin from Obj-C bridge files to bridged Swift registration
  • User needs the plugin package manifest and file exports updated for SPM

Procedures

Step 1: Gather Plugin Information

Read these files in the plugin root:

  • package.json
  • the .podspec
  • the main Swift plugin class under ios/

Record:

  • the package name
  • the pod name
  • the iOS deployment target
  • the plugin class name
  • the JavaScript plugin name
  • all exposed plugin methods
  • any third-party CocoaPods dependencies that also need SPM equivalents

Step 2: Create Package.swift

Add a Package.swift manifest that:

  • declares the plugin package name
  • sets the iOS minimum version
  • points the target at the plugin's iOS source directory
  • depends on the Capacitor Swift package support package used by the project
  • adds any resolved third-party SPM packages

Keep the target structure aligned with the actual plugin source tree.

Step 3: Convert the Swift Plugin Class

Update the plugin class to conform to CAPBridgedPlugin.

Add the bridge properties at the top of the class:

  • identifier
  • jsName
  • pluginMethods

Preserve each method name and return type exactly as the plugin already exposes them.

Step 4: Remove Objective-C Bridge Files

Delete the old bridge header and implementation files once the Swift bridge is in place.

Then clean the Xcode project file so it no longer references them.

Step 5: Update Package Metadata

Update the plugin package manifest so it exports:

  • the iOS sources
  • the podspec
  • Package.swift

Add an iOS SPM install command if the project maintains script helpers.

Step 6: Verify

Install dependencies with the repository's existing package manager.

Then cd into the example or test app directory that contains capacitor.config.*, run npx cap sync (or the repository's equivalent runner) there, and build that same app.

Error Handling

  • Start with the Swift package resolver: check the target path and package dependency names first.
  • Verify bridge registration by matching the class name, identifier, and jsName against the exported API.
  • For unsupported CocoaPods dependencies, replace them with SPM-compatible packages or keep CocoaPods for that dependency.

来源与署名

来源:Cap-go/capgo-skills位于plugins/capacitor-plugin-dev/skills/capacitor-plugin-spm-support提交2cfb277

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架