Objective c 关于向swift动态框架中添加目标C代码的说明

Objective c 关于向swift动态框架中添加目标C代码的说明,objective-c,xcode,swift,frameworks,Objective C,Xcode,Swift,Frameworks,我在swift中有一个动态框架,目前正在链接到另一个用Objective C编写的框架中。这很有效,但很烦人,因为Objective C框架实际上只有2个文件,我想知道是否有办法将其引入我的swift框架中 如果这是一个应用程序,我会选择用户桥接头,但swift框架不支持 我的框架称为GDL90,只包含swift文件 我的Objective-C框架包括: GeoidCalculator.h GeoidCalculator.m EGM96数据文件 CORCOEFdata文件 真的很简单-对吗?所以

我在swift中有一个动态框架,目前正在链接到另一个用Objective C编写的框架中。这很有效,但很烦人,因为Objective C框架实际上只有2个文件,我想知道是否有办法将其引入我的swift框架中

如果这是一个应用程序,我会选择用户桥接头,但swift框架不支持

我的框架称为GDL90,只包含swift文件

我的Objective-C框架包括:

GeoidCalculator.h GeoidCalculator.m EGM96数据文件 CORCOEFdata文件 真的很简单-对吗?所以我想看看是否有办法将这些代码添加到我的swift项目中

尝试1-将我的代码添加到伞头中?GDL90.h 我添加了我的文件,并在框架模块“GDL90”中获得了非模块头的警告Include

好吧,这不是掷骰子

尝试2 我想我需要制作一个模块映射文件

因此,我创建了一个名为${SRCROOT}/GDL90/EGM96的目录,并在其中创建了EGM96.module.modulemap

然后在我的一个swift文件中,我导入了似乎找不到的EGM96

在我的构建设置中,我有:

“定义模块”已打开,我指向模块映射文件项中的模块映射文件


我遗漏了什么吗???

如果正确创建内部框架,则不需要modulemap文件:

在EGM96项目下创建新的框架目标“EGM96”: 转到GDL90项目->添加新目标->Cocoa Touch框架 输入名称并选择Objective-C作为语言 将目标文件和EGM96的其他来源添加到新目标。

将GeoidCalculator.h添加为公共标题:

将GeoidCalculator.h标头的目标成员身份从“Project”更改为“Public” 将标题导入名为EGM96.h的伞形文件 确保伞头EGM96.h对于EGM96目标是公共的。 向GDL90的目标依赖项添加新框架,并向GDL90的链接二进制文件添加新库。 现在,您可以在EGM96的任何swift文件中导入EGM96: 进口EGM96

module EGM96 {
    header "GeoidCalculator.h"
    export *
}