Cocoapods subspec问题:没有一个规范来源包含满足依赖关系的规范。

20

我修改了Github上的一个库,用Swift版本集成了我的库。

https://github.com/iDevelopper/PBRevealViewController

但是当我在一个新项目中尝试pod install时,我遇到了以下错误:

[!] 无法满足以下要求:

  • PBRevealViewController/Swift (= 1.2.3)Podfile 要求的

你的spec源中没有任何一个能够满足依赖关系:PBRevealViewController/Swift (= 1.2.3)

可能的原因有: * 你的源代码仓库已经过期,可以使用pod repo update或者pod install --repo-update更新。 * 输入的名称或版本号有误。 * 没有将包含Podspec的源代码仓库添加到你的Podfile中。

注意:从CocoaPods 1.0开始,默认情况下pod install不会自动执行pod repo update

欢迎提供帮助!

请参见Cocoapods问题:

https://github.com/CocoaPods/CocoaPods/issues/6970#event-1213956994


删除您的 Podfile,然后重新生成。 - Anbu.Karthik
这是一个新项目,那么就需要一个新的podfile! - Patrick Bodet
检查你的CocoPods是否已更新。 - Anbu.Karthik
怎么做?通过访问Cocoapods网站吗?是的,就是这样。 - Patrick Bodet
使用此链接检查您的本地CocoaPods版本:https://dev59.com/X2Mk5IYBdhLWcg3w0hM- - Anbu.Karthik
谢谢!你通过这个链接给了我指引。我在终端上运行了pod outdated命令,然后运行pod install就成功了!感谢Cocoapods提供的有限答案和文档! - Patrick Bodet
5个回答

63
如果您使用带有M1芯片(苹果硅)的MacBook,请在终端中按照以下命令跟随您的iOS文件夹。
sudo arch -x86_64 gem install ffi

arch -x86_64 pod install

如果这仍然不能解决您的问题,请运行

 arch -x86_64 pod install --repo-update

我已经为此苦苦挣扎了几天,直到你的答案解决了我的问题,非常感谢你,Akaanksh! - Adam
解决了我的问题。谢谢。 - Asad S
已经为我的电容器项目修复了它。 - Najam Us Saqib
我真的花了三个小时苦苦挣扎,直到找到这个答案!我从未想过它可能与操作系统架构有关!!感谢您提供的答案! - Fala
不错的挽救,差点忘了,但这可能是我第二次需要这个技巧了。 - undefined
显示剩余3条评论

25

虽然我不熟悉这个问题,但我也遇到了同样的问题。我按照以下步骤删除了podfile并重新生成了podfile:

请使用以下步骤:

  • pod repo remove master

  • pod setup

  • pod install


3
当我运行pod repo remove master时,我会收到一个错误:[!]repo main不存在。 - Macilias
2
对我来说,该仓库不是“master”,而是“trunk”。pod repo remove trunk 对我有效。 - Lakindu

18

您可以尝试删除Podfile.lock然后运行pod update


pod update对我来说起了作用。 - undefined

0
  1. 将pod版本更新为1.11.3
  2. 运行"pod repo update --verbose"
  3. iOS / "pod install"

对我有用!!!


0

我已经为类似的问题苦苦挣扎了好几天,结果发现我试图作为依赖项包含的 pod 并不是 CocoaPods 的有效 Repo。我的意思是,该 repo 是一个正确的 GitHub repo,但它的问题在于它只有一个 podspec 在项目的根目录中,缺少了 CocoaPods specs repo 结构。 如果你阅读 CocoaPods 的官方指南,可能不会很明显他们的意思,但一旦我开始查看 specs repo,就恍然大悟。

如果你检查他们给出的示例,你会发现你需要一个不同的 GitHub repo,与你的 pod repo 分开,其中列出了所有的 podspecs。看看他们的示例 repo Artsy,你就会明白我的意思。

我误解的是将单个 pod 的源添加到我的 Podfile 顶部,而实际上它必须是整个 specs repo 的源,这个 repo 必须像我上面提到的那样单独创建,否则 pod install 将无法找到子规格,因为 repo 不正确。

在解释和查看上面提到的Artsy repo之后,我希望重新阅读CocoaPods文档会更加有意义,就像对我一样 :)

希望这可以帮助你。

我尝试举一个例子,展示正确源码下Podfile应该是什么样子的:

# The source below won't work if you integrate it as a dependency
source 'https://github.com/iDevelopper/PBRevealViewController.git'
# Instead create a new specs repo as per the info above and include that
# Similar to the one you already have here
source 'https://github.com/iDevelopper/RWPodSpecs.git'
#use_frameworks!
platform :ios, '9.0'

workspace 'PBRevealViewController.xcworkspace'

target 'PBRevealViewController_Example' do
    pod 'PBRevealViewController'

end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接