我有一个 Swift 框架,可以在 Swift 项目中完美运行。现在我正在尝试在 Objective-C 项目中使用它。
Iv'e 将类更改为如下所示:
@objc public class Test : NSObject {}
我将框架导入到 Objective-C 项目中,将其添加到Embedded Binaries和Linked 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:
我尝试将i386和arm64添加到Valid Architectures,
我试图将Build Active Architecture Only更改为No。
我找到了很多没有帮助我解决问题的解决方案。
我会很感激任何帮助,谢谢。
解决了:
构建设置 -> 构建设置 -> 始终嵌入 Swift 标准库 -> 是
我更新了框架和 Objective-C 项目。