如何在 Swift 中导入 Cocoapods 子规范/模块而不是整个 pod

How to import a Cocoapods subspec/ module instead of the entire pod in Swift

子规范 “表示库模块的规范。”

这是从 here 中获取的 .Podspec 文件的示例:

Pod::Spec.new do |s|
  s.name = 'RestKit'

  s.subspec 'Core' do |cs|
    cs.dependency 'RestKit/ObjectMapping'
    cs.dependency 'RestKit/Network'
    cs.dependency 'RestKit/CoreData'
  end

  s.subspec 'ObjectMapping' do |os|
  end
end

Inside Swift,有人会如何导入 only ObjectMapping subspec,而不是整个可可豆荚?文档确实说它是“库的模块”,所以这让我相信有一些方法可以单独导入模块/子规范。对我来说不幸的是,可能 他们对模块的定义与 Swift module 不同,并且此功能不存在。我只知道整个 pod 的导入:

import RestKit

不可能

这是不可能的,因为 Podspecs 定义了生成的 clang 模块。

我从 module_name 文档中推断出这一点:

The name to use for the framework / clang module which will be generated for this specification instead of the default (header_dir if set, otherwise the specification name).

...其中规范表示 Podspec.

解决方法

创建多个 Podspec 文件(clang 模块)。您可以将它们放在同一目录中。例如,Github: mapbox/mapbox-navigation-ios根目录下有2个podspecs,引用别处的其他Podspecs。