Xcode 中架构 arm64 的未定义符号

Undefined symbols for architecture arm64 in Xcode

我有一个框架 Xcode 项目 A 和一个使用 A 的框架二进制文件的应用程序 Xcode 项目 B。

当我尝试在我的应用程序中实例化我的框架对象时,它给我这个 link 错误:

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 解决了我的问题。

或者,如果我想保留该选项并隐藏所有其他符号,我也可以在 class 前面添加 __attribute__ ((visibility("default")))