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

私有GitHub Swift SDK发布至CocoaPods遇访问权限问题求助

解决方案:私有仓库SDK发布到CocoaPods Trunk的正确方式

是的,你必须通过**编译生成二进制归档(.xcframework)**的方式发布,因为CocoaPods Trunk无法访问私有GitHub仓库的源码。你提到的Kameleoon就是采用这种二进制发布模式,所以用户能通过pod引入但看不到仓库源码。

具体步骤:

1. 编译生成跨架构的.xcframework

针对iOS设备和模拟器分别归档,再合并为xcframework(推荐这种方式,支持Xcode的架构切片):

# 归档iOS设备版本
xcodebuild archive -scheme YourSDKName -destination "generic/platform=iOS" -archivePath ./build/ios.xcarchive SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

# 归档iOS模拟器版本
xcodebuild archive -scheme YourSDKName -destination "generic/platform=iOS Simulator" -archivePath ./build/iossim.xcarchive SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

# 合并为xcframework
xcodebuild -create-xcframework -framework ./build/ios.xcarchive/Products/Library/Frameworks/YourSDKName.framework -framework ./build/iossim.xcarchive/Products/Library/Frameworks/YourSDKName.framework -output ./YourSDKName.xcframework

注意:BUILD_LIBRARY_FOR_DISTRIBUTION=YES必须添加,确保Swift ABI稳定,避免其他项目引入时出现兼容性问题。

2. 修改podspec文件适配二进制发布

移除原podspec中指向私有仓库的source、source_files等源码相关配置,改为引用本地的xcframework:

Pod::Spec.new do |s|
  s.name         = "YourClient"
  s.version      = "1.0.0"
  s.summary      = "你的SDK功能概述"
  s.homepage     = "https://github.com/your-org/your-repo" # 可保留作为主页,Trunk不会验证源码访问
  s.license      = { :type => "MIT", :file => "LICENSE" }
  s.author       = { "你的名字" => "your@email.com" }
  s.swift_version = "5.0"
  s.platform     = :ios, "13.0"

  # 核心:指定二进制框架路径
  s.vendored_frameworks = "YourSDKName.xcframework"

  # 若SDK包含资源文件,添加以下配置
  # s.resources = "Resources/**/*"

  # 声明SDK依赖的第三方库(如有)
  # s.dependency "Alamofire", "~> 5.8"
end

3. 验证podspec

确保xcframework文件和podspec在同一目录下,执行验证命令:

pod lib lint YourClient.podspec --verbose

如果有警告或错误,根据提示调整(比如依赖缺失、版本不兼容等)。

4. 发布到Trunk

验证通过后,执行推送命令:

pod trunk push YourClient.podspec

此时Trunk只会读取本地的xcframework文件,不需要访问你的私有GitHub仓库,因此不会再出现URL不可访问的错误。

关键说明:

  • 二进制发布后,其他开发者通过pod引入的是编译好的框架,无法查看你的源码,符合私有仓库的需求。
  • 后续版本更新时,只需重新编译对应版本的xcframework,修改podspec的版本号,重复验证和推送步骤即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:52:40