Objective-C 和 Swift 的 Objective-C 模块映射(.modulemap)
Objective-C 语言通过 Objective-C 和 Swift 语言的 .modulemap 公开 API
[ObjC模块] https://stackoverflow.com/a/59213796/4770877
[自定义.modulemap] https://stackoverflow.com/a/57665560/4770877
这是关于LLVM 模块和模块映射语言 https://clang.llvm.org/docs/Modules.html#module-map-language. Modulemap
暴露C 头文件 for external二进制文件。它是模块和标头之间的桥梁。 Modulemap有助于转换#include, #import -> @import
因为它内部有模块名称和标头之间的映射。 modulemap 还有助于创建独立的额外的模块和子模块。 Modulemap可以包含很多模块(只有一个模块必须与产品名称相同)和很多子模块
//Objective-C exposes API through .modulemap for Objective-C and Swift
.h.m uses .h.m = Objective-C consumer, Objective-C producer = .modulemap
.swift uses .h.m = Swift consumer, Objective-C producer = .modulemap
框架包括.modulemap
叫做Modular Framework
. Path:
module_name.framework/Modules/module_name.modulemap
Setup
- When you create a library[Example] https://stackoverflow.com/a/59215981/4770877 you should create and setup it manually
- When you create a framework[Example] https://stackoverflow.com/a/59216086/4770877 it is setup automatically
即使你创建了 Swift 框架,Xcode 也会自动创建 modulemap
[在同一应用程序中混合 Objective-C 和 Swift] https://stackoverflow.com/a/59217109/4770877