问题描述
我有一个框架 Xcode 项目 A,以及一个使用 A 的框架二进制文件的应用程序 Xcode 项目 B。
当我尝试在我的应用程序中实例化框架的对象时,它给了我这个链接错误:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_MyClass",referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
我的框架是 arm64
,我用 lipo -info
验证。
符号 _OBJC_CLASS_$_MyClass
在框架中,我用 nm mylib | grep MyClass
验证过
我不明白怎么可能找不到这个符号。
这可能是什么原因?任何帮助将不胜感激,非常感谢..
解决方法
我通过在构建设置中将 Symbols Hidden by Default
设置为 No
解决了我的问题。
或者,如果我想保留该选项并隐藏所有其他符号,我也可以在我的班级前面添加 __attribute__ ((visibility("default")))
。