我有一个混合代码(objective-c和Swift)的项目,我需要将其打包为框架。它还使用了一些外部框架。
我的伞标题有很多导入到我使用的框架的不同标题,以及我的项目中的objective-c源代码(以便Swift代码可以访问它)。我也有一个快速文件,例如MyFramework.swift,它有一些我希望向框架用户公开的代码。
然而,框架编译时,当我尝试在另一个Swift项目中使用它时,我无法访问MyFramework.swift的内容。即使文件存在(使用Swift源代码)在框架产品中也是如此!
然而,我能够从公共标题中访问objective-c代码。所以我试着在Objective-c中用MyFramework.swift编写代码(MyFramework.h& MyFramework.m),因为我认为在objective-c和swift中暴露代码可能是一个问题(尽管从我读到的内容 - 它不应该)。这样就可以访问这个类中的对象,但后来我遇到了一个链接器错误:
架构x86_64的未定义符号:
" _OBJC_CLASS _ $ _ MyObject",引自: __TZFC12TestFW6MyObject20testfMS0_FCSo16UIViewControllerT_ 在ViewController.o ld:找不到架构x86_64的符号
这实际上发生在我试图引用的每个公共swift类中。我确保这些文件存在于"编译源和#34;项目设置的构建阶段下的列表,这不是问题。
我很无能为力。有任何想法吗? 感谢。