用子模块创建一个Swift框架

问题描述

我有一个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模块中可用。

问题是,如何在模块映射中指定哪些快速文件(理想情况下为子文件夹)属于哪个module

Networking仅包含快速文件,因此伞状.h文件基本上为空。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)