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

使用URL引入vendored framework时Podspec依赖未下载问题排查

问题原因与解决方案

问题原因

当你在podspec里使用{ :http => ... }作为source时,CocoaPods会将这个pod认定为预编译二进制pod。这类pod的设计逻辑是:二进制包本身已经包含了运行所需的核心内容,因此CocoaPods会跳过解析并下载该podspec中声明的依赖项,仅下载你指定的xcframework压缩包。

这和从Git仓库或其他源码型source拉取的pod不同——源码型pod会完整解析podspec中的所有依赖配置,自动拉取所需的依赖库。

解决方案

根据你的需求,有两种可行的处理方式:

1. 改用源码型Source(推荐)

如果你的MyFramework有对应的Git仓库,把podspec的source改成指向仓库地址,同时指定对应版本的tag或commit:

s.source = { :git => "https://example.com/MyFramework.git", :tag => s.version.to_s }
s.vendored_framework = 'MyFramework.xcframework'

修改后,CocoaPods会将其当作源码pod处理,自动解析并下载MyPublicPod依赖。

2. 手动在Podfile中添加依赖

如果必须使用HTTP source的二进制包,直接在项目的Podfile中显式声明依赖:

pod 'MyFramework', :http => "https://example.com/MyFramework.xcframework.zip"
pod 'MyPublicPod', '= 0.1.0'

执行pod install时,就会同时下载这两个库。

额外说明

二进制pod的依赖声明更多是作为元信息存在,用于告知使用者该二进制依赖了哪些库,但不会自动触发依赖下载。如果你的二进制库本身并没有静态链接MyPublicPod,就必须手动添加依赖才能保证项目正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:00:47