我有一个Swift框架,可以在Swift Projects中完美运行 . 现在我试图在Objective-C项目中使用它 .

我将类改为看起来像:

@objc public class Test : NSObject {}

我将框架导入Objective-C项目,将其添加到 Embedded BinariesLinked Frameworks and Libraries .

在ViewController.m中我导入了这样的框架:

#import <SwiftFramework/SwiftFramework-Swift.h>

我尝试创建Test类型的实例:

Test* test = [[Test alloc] init];

测试是可以识别的,但是当我尝试将其构建到iPhone时,它的失败原因是:

Undefined symbols for architecture arm64: "_OBJC_CLASS_$__TtC14SwiftFramework4Test", referenced from:

如果我将它构建到模拟器,它失败的原因是:

Undefined symbols for architecture i386: "_OBJC_CLASS_$__TtC14SwiftFramework4Test", referenced from:

我试图将 i386arm64 添加到 Valid Architectures

我试图将 Build Active Architecture Only 更改为 No .

我发现很多解决方案都无法解决问题 .

我会感激任何帮助,谢谢 .

已解决:

Build Setting -> Build Settings -> Always Embed Swift Standard Libraries -> YES

我更新了框架和Objective-C项目 .