将带有源的Pod依赖项添加到.podspec

时间:2019-04-18 12:20:21

标签: ios swift dependencies cocoapods podspec

我正在尝试将以下依赖项添加到我的Podspec

s.dependency 'Apollo/WebSocket', :git => 'https://github.com/apollographql/apollo-ios'

每当我尝试运行pod lib lint MyPodName.podspec时,我都会从终端机中获得以下信息:

- ERROR | spec: The specification defined in `MyPodName.podspec` could not be loaded.


[!] Invalid `MyPodName.podspec` file: [!] Unsupported version requirements.

 #  from <PathToMyPodspec>/MyPodName.podspec:36
 #  -------------------------------------------
 #    
 >    s.dependency 'Apollo/WebSocket', :git => 'https://github.com/apollographql/apollo-ios'
 #    
 #  -------------------------------------------

我已经在我的一个iOS项目中成功将其用作Pod。但是,既然我自己创建了一个pod,我正在努力了解如何使它工作。

提前谢谢!

4 个答案:

答案 0 :(得分:2)

在执行验证时,您需要输入带有指向托管 podspec 的存储库链接的命令。像这样的东西 pod lib lint --sources=git@github.com:CocoaPods/Specs.git,git@github.com:otherRepos

答案 1 :(得分:1)

似乎不允许像这样在PodSpec中定义依赖项。请参阅Dependency

上的CocoaPod指南文档

似乎它应该只包含如下所述的版本信息。不允许使用其他格式。

enter image description here

答案 2 :(得分:0)

解决了!

事实证明,项目的 Podfile 文档在所有这一切中都起着重要作用。我在上述项目的/Example文件夹中找到它。我所做的是:

use_frameworks!
source = 'https://github.com/apollographql/apollo-ios'
source = 'https://github.com/apollographql/apollo-ios'

target 'MyPodName_Example' do

  pod 'Apollo'
  pod 'Apollo/WebSocket'
  pod 'MyPodName', :path => '../'

  target 'MyPodName_Tests' do
    inherit! :search_paths


  end
end

(我不太确定我是否一定要同时使用source行,但确实如此)

然后我在pod install目录上运行了/Example

此后,我返回到我的MyPodName.podspec文件并编辑了相关性,如下所示:

  s.dependency 'Apollo'
  s.dependency 'Apollo/WebSocket'

然后我在根目录(我的pod lib lint MyPodName.podspec文件所在的位置)上运行.podspec,这次成功了。


注意:

  • 我需要ApolloApollo/WebSocket依赖性。
  • 我还没有推送我的Pod,所以不能保证所有这些都是100%正确
  • 我是CocoaPods的新手,所以这可能不是解决问题的最佳方法。

答案 3 :(得分:0)

根据此CocoaPods/issues/2485CocoaPods/issues/922, podspecs现在无法指定依赖项的来源。

替代:

用于公共回购

只需直接使用s.dependency 'Apollo/WebSocket', '~> 0.0.1'

如果您要指定私人仓库

可以自由地遵循此blog's步骤来创建(pod repo push)私有库。然后,您应该可以使用s.dependency 'YourPrivateProjectName', '~> 0.0.1'

指定私有项目