【问题标题】:Cocoapods: cannot find spec for pod even though it seems to existCocoapods:找不到 pod 的规范,即使它似乎存在
【发布时间】:2018-05-26 12:10:45
【问题描述】:

我已经创建了我的第一个 Cocoapod,并且正在尝试第一次在测试程序中使用它。即使它显示在“pod 列表”中,但当我通过说“无法找到规范”来尝试“pod install”时它还是失败了。 Lint 在 pod 上成功,我已将其推送到我的私人 pod 存储库。我还验证了我的私人 repo 列在“pod repo list”中。

我在 StackOverflow 上发现了一些类似的线程,但似乎没有任何帮助。

请参阅下面的详细信息。

更新:

基于 Larme 的 cmets,我尝试了一些方法:

1) 在 Podfile 顶部添加以下行没有任何效果:

来源'ssh://git@code.mycompany.net/xmios/lib-mylib.git'

2) 取消版本号限制没有帮助。

3) 更改 Podfile 以使以下确实工作:

pod 'Lib-MYLIB', :git => 'ssh://git@code.mycompany.net/xmios/lib-mylib.git', :tag => '0.0.3'

问题:

A) 为什么 #1 不起作用?

B) 为什么它不能搜索所有配置的 spec repos 并找到 pod 本身?

更新 2:

我发现虽然我可以指定一个特定的标签,但我不能指定一个版本条件(例如> = 0.0.3),这是方法#3的一个重大缺点,所以我正在寻找一种方法这让我可以这样做。

更新 3:

通过更多的实验,我找到了一个很好的解决方案,它包括像以前一样在 Podfile 的开头使用“source”关键字。问题是我需要在那里指定 podspec repo 路径,而不是源本身的路径。

===> 在测试程序的 Podfile 中

目标 'LibMYLIB_Consumer_Test' 做

pod 'Lib-MYLIB', '~> 0.0.3'

结束

===> 在 podspec 中为 pod:

s.source = { :git => "ssh://git@code.mycompany.net/ios/lib-mylib.git", :tag => "#{s.version}" }

s.name = "Lib-MYLIB"

s.version = "0.0.3"

===> Pod 列表

...

Lib-MYLIB 0.0.3

...

===> 吊舱安装 --verbose 准备中

分析依赖关系

检查要集成的目标 使用ARCHS 设置构建 目标Pods-LibMYLIB_Consumer_Test的架构:(``)

解决 Podfile [!] 的依赖关系无法找到规范 为Lib-MYLIB (~> 0.0.3)

/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/resolver.rb:461:in handle_resolver_error' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/resolver.rb:80:in rescue 解决' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/resolver.rb:72:in resolve' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:771:in block in resolve_dependencies' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/user_interface.rb:64:in section' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:768:in resolve_dependencies' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:79:in analyze' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:242:in analyze' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:154:in block in resolve_dependencies' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/user_interface.rb:64:in section' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:153:in resolve_dependencies' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:116:in 安装! /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command/install.rb:41:in run' /Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in run' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command.rb:52:in run' /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/bin/pod:55:in ' /usr/local/bin/pod:22:in load' /usr/local/bin/pod:22:in'

【问题讨论】:

  • 如果您使用pod 'Lib-MYLIB' 而不是pod 'Lib-MYLIB', '~> 0.0.3' 是否有效?另外,在你podfile的开头,你做了source 'ssh://git@code.mycompany.net/ios/lib-mylib.git吗?另一种可能性是做pod 'Lib-MYLIB', :git => ssh://git@code.mycompany.net/ios/lib-mylib.git
  • 非常感谢,其中一个解决方案有效(请参阅我在原始帖子正文中的更新),尽管它有一个限制,所以我仍在寻找其他解决方案。
  • 如果您通过测试我的提议/提示而成功并使其发挥作用,请随时通过解释回答您自己的问题。

标签: cocoapods


【解决方案1】:

通过更多的实验,我找到了一个很好的解决方案,它包括像以前一样在 Podfile 的开头使用“source”关键字。问题是我需要在那里指定 podspec repo 路径,而不是源本身的路径。

来源'ssh://code.mycompany.net/ios/cocoapods.git'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2017-03-19
    • 2017-02-27
    • 1970-01-01
    • 2014-07-22
    • 2014-11-12
    相关资源
    最近更新 更多