创建一个包含子模块的Swift框架



我有一个Xcode项目,它有一个主应用程序和一个名为Networking的Swift框架。现在,我想将Networking模块拆分为一个子模块,该子模块只包含一些实用程序类,以便只有在显式导入时,它们才可用于主应用程序。所以我想实现的用途是

import Networking
import Networking.Utils
// Public class in Networking
MyNetworking.doStuff()
// Public class in Networking.Utils
// Should not compile unless Networking.Utils is imported
MyNetworkingUtils.doSomething()

因此,我的模块具有以下文件结构

.
├── Core
│   ├── MyNetworking.swift
│   └── Networking.h
├── Info.plist
├── Utils
│   ├── NetworkingUtils.h
│   └── Utils.swift
└── module.modulemap

我用以下内容创建了一个自定义module.modulemap

framework module Networking {
umbrella header "Networking.h"
export *
module * { export * }
explicit module Utils {
header "NetworkingUtils.h"
}
}

这创建了Networking模块,但问题是Utils类在主Networking模块中可用。

问题是,我如何在模块映射中指定哪些Swift文件(最好是子文件夹(属于哪个module

Networking只有Swift文件,所以伞形.h文件基本上是空的。

这里有两个不同的模块似乎是一个不错的选择:Networking和NetworkingUtils(第二个模块可能依赖于第一个模块(。

最新更新