【问题标题】:Unable to find a specification for [PUBLIC POD] depended upon by [PRIVATE POD]无法找到由 [PRIVATE POD] 依赖的 [PUBLIC 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`

我在这里缺少什么?

【问题讨论】:

标签: objective-c cocoapods


【解决方案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 之后你会得到一个错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 2013-05-30
  • 1970-01-01
相关资源
最近更新 更多