首页 > 解决方案 > 如何创建 Swift 导入子模块

问题描述

目前我们已经模块化了我们的 Swift 项目,使用了多个目标。目标编译为 .framework 文件,这些文件是更高目标的依赖项。我们有一个 Common 模块目标、几个 Product 模块目标和原始 App 目标。Common 将包含非常低级的代码、共享库以及可能由多个产品目标共享的任何特定代码。

所以应用程序会做:

 import Common
 import Product1
 import Product2

Product1 目标代码可能会:

 import Common

通常流程是 Common -> Product* -> App,Common 永远不会引用另一个方向。

不幸的是,Common 已经变得很大,并且有很多代码可能不是每次导入都需要的。

我希望能够在 Swift 中实现的是这样的:

import Common.API
import Common.PurchaseCheckout

我研究了模块映射,它允许设置导入子模块,但它都集中在 Objective-C 头文件上,而不是 Swift。有快速变化吗?

具体需求是我们想创建一个只使用部分功能的轻量级SDK,并且一旦我们“导入Common”,它就会使SDK膨胀,并且它还增加了对相当多不相关的cocoa-pods的依赖. 我们可以在 SDK 目标文件中逐个文件包含文件,但希望模块化能让事情变得更简单。

编辑

看来我可以使用以下内容:

import class Common.FileDownloadAPI
import class Common.FileUploadAPI

可能在我的代码中创建部分导入的印象。但是,modulemaps 似乎是 Objective-c 中为您创建子模块的一种方式。我不想编写 100 个类导入来导入子模块在一次导入中可能执行的 200 个文件中的一半。所以还在寻找思路。

标签: iosswiftmoduletargetmodule-map

解决方案


推荐阅读