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

如何将SPM开发的iOS包转为CocoaPods支持?含免重建及预编译方案

SPM包适配CocoaPods方案(无需重建项目+预编译包分发)

一、无需重建项目,直接适配CocoaPods

完全不用重构现有SPM项目,只需要在项目根目录新增一个Podspec文件(后缀为.podspec),用它描述包的信息即可。

核心步骤:

  1. 在SPM项目根目录创建YourPackageName.podspec文件,示例内容如下:
Pod::Spec.new do |s|
  s.name         = "YourPackageName"
  s.version      = "1.0.0"
  s.summary      = "你的SPM包的简短描述"
  s.homepage     = "包的主页地址(比如GitHub仓库地址)"
  s.license      = { :type => "MIT", :file => "LICENSE" }
  s.author       = { "Your Name" => "your@email.com" }
  s.source       = { :git => "https://github.com/yourusername/yourrepo.git", :tag => s.version.to_s }
  
  # 指定支持的平台和最低版本,和SPM保持一致
  s.platforms    = { :ios => "14.0" }
  
  # 指向SPM Sources目录下的源码,不用改原有结构
  s.source_files = "Sources/YourPackageName/**/*.{swift,h,m}"
  
  # 如果你的SPM包有依赖,转换成CocoaPods对应的依赖格式
  # s.dependency "Alamofire", "~> 5.0"
end
  1. 验证Podspec是否合法,在终端执行:
pod spec lint YourPackageName.podspec --verbose
  1. 验证通过后,用户就能直接通过CocoaPods引入你的包,无需你改动原有SPM项目结构。

二、导出预编译包(XCFramework)并通过CocoaPods分发

如果要分发预编译包,只需要基于现有SPM项目导出XCFramework,再修改Podspec指向预编译文件即可。

核心步骤:

  1. 导出XCFramework:
    打开Xcode,选择你的SPM包的scheme,执行Product > Archive,归档完成后,在Organizer中选择归档包,点击Distribute Content,选择Framework & Library,导出格式选XCFramework,保存到本地。
    或者用命令行批量导出(支持多架构):
xcodebuild archive \
  -scheme YourPackageName \
  -destination "generic/platform=iOS" \
  -archivePath "./archives/ios.xcarchive" \
  SKIP_INSTALL=NO \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild archive \
  -scheme YourPackageName \
  -destination "generic/platform=iOS Simulator" \
  -archivePath "./archives/ios_sim.xcarchive" \
  SKIP_INSTALL=NO \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild -create-xcframework \
  -framework ./archives/ios.xcarchive/Products/Library/Frameworks/YourPackageName.framework \
  -framework ./archives/ios_sim.xcarchive/Products/Library/Frameworks/YourPackageName.framework \
  -output ./YourPackageName.xcframework
  1. 修改Podspec,替换源码指向为预编译框架:
Pod::Spec.new do |s|
  # 保留基础信息(name/version/summary等)不变
  
  # 这里改成指向包含XCFramework的Git仓库或本地路径
  s.source       = { :git => "https://github.com/yourusername/yourrepo.git", :tag => s.version.to_s }
  
  s.platforms    = { :ios => "14.0" }
  
  # 替换source_files为vendored_frameworks,指定XCFramework路径
  s.vendored_frameworks = "YourPackageName.xcframework"
  
  # 如果预编译包有依赖,依然要声明
  # s.dependency "Alamofire", "~> 5.0"
end
  1. 将XCFramework上传到Git仓库(比如打tag关联版本),然后执行pod spec lint验证,通过后即可让用户通过CocoaPods引入预编译包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:15:34