在 Objective C 项目中使用 Swift 框架

Yan*_*der 5 objective-c ios swift swift-framework

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

我将类更改为如下所示:

@objc public class Test : NSObject {}
Run Code Online (Sandbox Code Playgroud)

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

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

#import <SwiftFramework/SwiftFramework-Swift.h>
Run Code Online (Sandbox Code Playgroud)

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

Test* test = [[Test alloc] init];
Run Code Online (Sandbox Code Playgroud)

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

Undefined symbols for architecture arm64: "_OBJC_CLASS_$__TtC14SwiftFramework4Test", referenced from:
Run Code Online (Sandbox Code Playgroud)

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

Undefined symbols for architecture i386: "_OBJC_CLASS_$__TtC14SwiftFramework4Test", referenced from:
Run Code Online (Sandbox Code Playgroud)

我尝试将i386arm64添加到Valid Architectures

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

我找到了很多没有帮助我解决问题的解决方案。

我将不胜感激任何帮助,谢谢。

解决了:

构建设置 -> 构建设置 -> 始终嵌入 Swift 标准库 -> 是

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