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

EBD*_*KUM 7 dependencies ios cocoapods podspec swift

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

s.dependency 'Apollo/WebSocket', :git => 'https://github.com/apollographql/apollo-ios'
Run Code Online (Sandbox Code Playgroud)

每当我尝试运行时,这是我在终端中得到的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'
 #    
 #  -------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我已经成功地将它用作我的一个 iOS 项目中的 Pod。但是现在我自己正在创建一个 pod,我很难理解我应该怎么做才能让它工作。

先感谢您!

Ana*_*and 9

看起来不允许像这样在 PodSpec 中定义依赖项。请参考 CocoaPod 的依赖指南文档

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

在此处输入图片说明


EBD*_*KUM 9

解决了!

事实证明,项目的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
Run Code Online (Sandbox Code Playgroud)

(我不太确定我是否一定需要这两source行,但它确实像这样工作)

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

之后,我返回到我的MyPodName.podspec文件并编辑依赖项,如下所示:

  s.dependency 'Apollo'
  s.dependency 'Apollo/WebSocket'
Run Code Online (Sandbox Code Playgroud)

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


注意:

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


boo*_*oog 7

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

选择:

对于公共回购

直接使用就可以了s.dependency 'Apollo/WebSocket', '~> 0.0.1'

如果您指定私人存储库

随意按照此博客的步骤创建(pod repo push)一个私有库。然后你应该能够通过使用指定你的私人项目s.dependency 'YourPrivateProjectName', '~> 0.0.1'


小智 5

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