Неопределенные символы для архитектуры arm64 в Xcode

#xcode #linker #frameworks #static-libraries #linker-errors

#xcode #компоновщик #фреймворки #статические библиотеки #компоновщик — ошибки

Вопрос:

У меня есть фреймворк Xcode project A и приложение Xcode project B, которое использует двоичный файл фреймворка A.

Когда я пытаюсь создать экземпляр объекта моего фреймворка в своем приложении, он выдает мне эту ошибку ссылки :

 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

Я не понимаю, как возможно, что этот символ не найден.

Что может быть причиной этого? Любая помощь будет оценена, большое спасибо..

Ответ №1:

Я решил свою проблему Symbols Hidden by Default No , установив значение в настройках сборки.

Или я мог бы также добавить __attribute__ ((visibility("default"))) перед своим классом, если бы хотел сохранить эту опцию и скрыть все остальные символы.