You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Framework的Cocoapods podspec中添加本地Swift Package依赖

CocoaPods podspec 声明Swift Package依赖的正确配置方法

前置要求

  • 首先确保你本地使用的CocoaPods版本 >= 1.9.0,该版本开始原生支持podspec中声明SPM依赖

两种场景的配置方案

场景1:依赖的是公开远程Swift Package

直接通过podspec的swift_packages属性声明即可,无需拖拽SPM到本地工作区,示例配置如下:

# 基础简写版,适用于官方SPM仓库收录的包
s.swift_packages = { 'Alamofire' => '~> 5.8.0' }

# 自定义远程地址完整版
s.swift_packages = [
  {
    :name => '你的SPM包名称',
    :url => 'SPM包对应的Git远程仓库地址',
    :version => '1.0.0'
    # 也可替换为分支或提交哈希::branch => 'main' / :revision => 'xxxxxx'
  }
]

场景2:依赖的是本地私有未公开的Swift Package

这种情况下需要将SPM的源文件直接纳入Pod的分发资源,你之前source_files配置不生效通常是路径匹配规则错误:

  • 确认路径是相对于podspec文件所在目录的相对路径
  • 要匹配所有层级的Swift源文件需要用**/*递归通配符,示例配置:
    s.source_files = 'SwiftPackage/Sources/**/*.swift', '你的Pod原有源文件路径/**/*.swift'
  • 如果SPM包含资源、公共头文件,需要额外对应配置resource_bundles、public_header_files属性
  • 同步声明SPM依赖的系统框架:s.frameworks = 'Foundation', 'UIKit'
  • 匹配SPM的Swift版本要求:s.swift_version = '5.7'

验证配置

配置完成后执行本地校验命令确认配置无误:
pod lib lint --allow-warnings

内容的提问来源于stack exchange,提问作者Harout360

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:36:04