Как связать библиотеку с -force_load в Xcode?

Другие мои библиотеки не позволяют мне устанавливать флаги -ObjC или all_load. Поэтому мне нужно использовать -force_load, чтобы связать мою библиотеку.

У меня есть "GoogleOpenSource.framework" и "GooglePlus.framework" в моем проекте, так как я могу правильно сопоставить их для работы.

Я установил такие пути:

-force_load $(PROJECT_DIR)/Project_name/GooglePlus.framework/Versions/A/Headers/GooglePlus.h

-force_load $(PROJECT_DIR)/Project_name/GoogleOpenSource.framework/Versions/A/Headers/GoogleOpenSource.h

под другими флагами компоновщика, но это не работает.

Что я здесь делаю неправильно?


person RJ168    schedule 23.07.2015    source источник


Ответы (2)


Я столкнулся с той же проблемой, но, наконец, я исправил это с помощью следующих шагов: -

Шаги

  1. Перейдите к «другим флагам компоновщика» в настройках сборки вашего проекта, а затем
  2. Добавить -force_load $(PROJECT_DIR)/yourframewokname.framework/yourframeworkname

Примечание** Фреймворк, который требует добавления флага -ObjC внутри другого флага компоновщика, в этом случае он конфликтует с другими библиотеками, поэтому в этом случае вам необходимо принудительно загрузить библиотеку, для которой требуется -ObjC.

Используйте вышеупомянутые шаги, это работает.

person Amit Thakur    schedule 15.05.2017

Флаг -force_load предназначен для загрузки статических библиотек, поэтому в качестве параметра вы указываете архив библиотеки, а НЕ заголовочный файл.

Вместо этого используйте следующее:

-force_load GooglePlus.framework/Versions/Current/GooglePlus
-force_load GoogleOpenSource.framework/Versions/Current/GoogleOpenSource
person technophyle    schedule 17.08.2015