将带有源的 Pod 依赖项添加到 .podspec
Add Pod dependency with source to .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,我很难理解我应该怎么做才能让它发挥作用。
提前致谢!
看来不允许在PodSpec中这样定义依赖。请参考 Dependency
上的 CocoaPod 指南文档
它似乎应该只包含如下所述的版本信息。不允许使用其他格式。
已解决!
事实证明,项目的 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
文件所在的位置),这次成功了。
注意:
- 我需要
Apollo
和 Apollo/WebSocket
依赖项。
- 我还没有推送我的 Pod,无法保证运行所有这些都是 100% 正确的
- 我是 CocoaPods 的新手,所以这可能不是问题的最佳解决方案。
据此CocoaPods/issues/2485, CocoaPods/issues/922,
podspecs 现在无法指定依赖源。
选择:
对于 public 回购:
直接用s.dependency 'Apollo/WebSocket', '~> 0.0.1'
就可以了
如果您要指定私有存储库
随意按照此blog's步骤创建(pod repo push
)私人图书馆。然后你应该可以使用 s.dependency 'YourPrivateProjectName', '~> 0.0.1'
来指定你的私人项目
执行验证时,您需要在托管 podspec 的存储库中输入带有 link 的命令。像这样的东西
pod lib lint --sources=git@github.com:CocoaPods/Specs.git,git@github.com:otherRepos
我正在尝试将以下依赖项添加到我的 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,我很难理解我应该怎么做才能让它发挥作用。
提前致谢!
看来不允许在PodSpec中这样定义依赖。请参考 Dependency
上的 CocoaPod 指南文档它似乎应该只包含如下所述的版本信息。不允许使用其他格式。
已解决!
事实证明,项目的 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
文件所在的位置),这次成功了。
注意:
- 我需要
Apollo
和Apollo/WebSocket
依赖项。 - 我还没有推送我的 Pod,无法保证运行所有这些都是 100% 正确的
- 我是 CocoaPods 的新手,所以这可能不是问题的最佳解决方案。
据此CocoaPods/issues/2485, CocoaPods/issues/922, podspecs 现在无法指定依赖源。
选择:
对于 public 回购:
直接用s.dependency 'Apollo/WebSocket', '~> 0.0.1'
就可以了
如果您要指定私有存储库
随意按照此blog's步骤创建(pod repo push
)私人图书馆。然后你应该可以使用 s.dependency 'YourPrivateProjectName', '~> 0.0.1'
执行验证时,您需要在托管 podspec 的存储库中输入带有 link 的命令。像这样的东西 pod lib lint --sources=git@github.com:CocoaPods/Specs.git,git@github.com:otherRepos