在 Swift 应用程序中集成闭源混合 Swift 和 Objective-C 框架



我创建了一个混合的 Objective-C 和 Swift 框架,它有一个用 Swift 编写的 API 类:

@import PrivateIncludes
@objc open class FrameworkApi : NSObject {
@obj open static func setup(apiKey: String) {
}
}

这个类引用了多个其他类:来自框架中的 Objective-C 和 Swift。

我的模块映射文件导入多个 Objecive-C 文件:

module PrivateIncludes {
header "./ObjcClassA.h"
header "./ObjcClassB.h"
...
}

在Objective-C应用程序中集成框架时,一切都按预期工作。我导入框架并毫无问题地使用它:

@import MyFramework;
[FrameworkApi setupWithApiKey:@""];

这按预期工作。

另一方面,当尝试从 Swift 代码导入框架时:

import MyFramework

编译器抱怨:

ObjcClassA.h:10:9: 'ObjcClassB.h' file not found

由于ObjcClassA利用了ObjcClassB.即使将所有标题公开(我不想这样做(然后复制到标题文件夹也无济于事。

好像我错过了什么。

我相信您需要为项目添加一个桥接标头并将 ObjcClassB.h 导入其中。 看看这个文档 - https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

相关内容

  • 没有找到相关文章

最新更新