【发布时间】:2019-04-09 23:01:25
【问题描述】:
我正在尝试将 Swift 集成到现有的具有公共、私有和项目文件的 Objective-C 框架中。为了快速访问项目文件,我添加了一个模块映射,该模块映射定义了一个新模块(例如 MyFramework_Internal),包括所有项目标头,如下所述:http://nsomar.com/project-and-private-headers-in-a-swift-and-objective-c-framework/
该设置有点工作,但令我惊讶的是,现在客户端可以通过导入 MyFramework_Internal (@import MyFramework_Internal) 访问内部类。有没有办法隐藏模块,因为它只需要框架本身? 模块图现在看起来像这样:
module MyFramework_Internal {
header "Folder1/Baz.h"
header "Folder1/Folder2/Bar.h"
export *
}
【问题讨论】:
-
对于公共框架组装,您可以通过将不同的模块映射复制到您的模块中来创建不同的目标、后处理组装的框架,这不会暴露私有模块。
-
另外,您可以尝试添加私有模块映射
module.private.modulemap,如下所述:stackoverflow.com/questions/34265339/…
标签: ios objective-c swift frameworks clang