我有一个Swift框架,可以在Swift Projects中完美运行 . 现在我试图在Objective-C项目中使用它 .
我将类改为看起来像:
@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 .
我发现很多解决方案都无法解决问题 .
我会感激任何帮助,谢谢 .
已解决:
Build Setting -> Build Settings -> Always Embed Swift Standard Libraries -> YES
我更新了框架和Objective-C项目 .