我有一个 Xcode 项目,其中包含一个主应用程序和一个名为Networking
. 现在我想将该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
基本上是空的。