无法找到由 [PRIVATE POD] 依赖的 [PUBLIC POD] 的规范
Posted
技术标签:
【中文标题】无法找到由 [PRIVATE POD] 依赖的 [PUBLIC POD] 的规范【英文标题】:Unable to find a specification for [PUBLIC POD] depended upon by [PRIVATE POD] 【发布时间】:2017-01-23 15:52:52 【问题描述】:我正在创建一个私有 pod 来处理我的项目中使用的所有常见代码。这个私有 pod 在他的 podspec 上有几个子规范,其中一个依赖于一个众所周知的公共 pod:AFNetworking。
在我的 podspec 我有这个
Pod::Spec.new do |s|
s.name = "NAME"
s.version = "0.0.1"
s.summary = "SUMMARY"
s.description = "DESCRIPTION"
s.homepage = "https://myhomepage.com"
s.license = :type => "MIT", :file => "LICENSE"
s.author = "Me" => "me@myemail.com"
s.platform = :ios, "8.0"
s.source = :git => "https://repositorywithmyprivatepodcode", :tag => s.version
s.subspec 'Core' do |cs|
cs.source_files = "Source/Core/**/*.h,m"
end
s.subspec 'Resized' do |rs|
rs.source_files = "Source/Resized/**/*.h,m"
rs.dependency 'NAME/Core'
rs.dependency 'AFNetworking' , '~> 3.0'
end
s.subspec 'UI' do |us|
us.source_files = "Source/UI/**/*.h,m"
end
end
我在尝试使用的项目的 Podfile 中有此代码 “调整大小”子规范
source 'https://repositorywithmyprivatepodcode'
target 'TestProject' do
pod 'Square1/Resized'
end
但是我在运行pod install
时遇到了这个错误
[!] Unable to find a specification for `AFNetworking` depended upon by `Square1/Resized`
我在这里缺少什么?
【问题讨论】:
rs.dependency
和依赖之间是否存在=
?
不,不需要=
,你可以在这里看到guides.cocoapods.org/making/specs-and-specs-repo.html
您找到解决此问题的方法了吗?
【参考方案1】:
好吧,我的问题是我没有在项目的 Podfile 中包含 Cocoapods 主存储库。
官方的 CocoaPods 源是隐含的。一旦你指定另一个 源,则需要包含它。
所以我更改了我的 Podfile 以包含它
source 'https://bitbucket.org/square1mobileteam/square1-specs'
source 'https://cdn.cocoapods.org/'
而且它有效。
【讨论】:
是否也可以修复一下,明确地提供您的私有 pod 的来源并保留默认的 CocoaPods 来源?:pod 'Square1/Resized', :git => 'https://repositorywithmyprivatepodcode'
?
不,cocoapods 不允许在子规范中设置源。如果你尝试一下,你会看到在执行pod repo lint
之后你会得到一个错误。以上是关于无法找到由 [PRIVATE POD] 依赖的 [PUBLIC POD] 的规范的主要内容,如果未能解决你的问题,请参考以下文章