Игнорировать библиотеку в приложении iOS для компиляции для симулятора

Я видел пост, который уже ссылался на мою проблему и решал ее, но она была активна 2 года назад, и я пытался использовать ее, но она не работает для меня (возможно, разница в Xcode или чем-то еще)
вот соответствующие посты:

У меня есть проект, который работает с vuforia, библиотекой c ++, но эта библиотека не совместима с симулятором. Я хочу скомпилировать свой проект для симулятора (даже если часть, использующая lib, очевидно, не будет работать), чтобы проверить другие функциональные возможности моего приложения.

В моих настройках сборки у меня было это:

Пути поиска заголовка : ../../build/include

Пути поиска в библиотеке : ../../build/lib/arm

У меня ничего не было в Другие флаги линкера

Следуя сообщениям, я попытался удалить библиотеку исключительно для симулятора, и в настоящее время у меня есть:
Путь поиска в библиотеке

Ошибка компиляции меняется, и теперь это «Vuforia / Vuforia.h файл не найден» в одном из моих контроллеров представления, которые используют библиотеку lib.

Я позаботился об этом и добавил инструкцию препроцессора.

#if !(TARGET_OS_SIMULATOR)
....
#endif

Это работает для многих из них, но одна ошибка все еще там, даже если она находится внутри блока, как показано выше

#if !(TARGET_OS_SIMULATOR)

#import <QuartzCore/QuartzCore.h>
#import <OpenGLES/ES2/gl.h>
#import <OpenGLES/ES2/glext.h>
#import <sys/time.h>

#import <Vuforia/Vuforia.h>
#import <Vuforia/State.h>
#import <Vuforia/Tool.h>
#import <Vuforia/Renderer.h>
#import <Vuforia/TrackableResult.h>
#import <Vuforia/VideoBackgroundConfig.h>
...
#endif

В конце я тоже попытался поиграть с Другие флаги линкера но это не помогает …

Можете ли вы помочь мне найти способ привязать библиотеку только для устройства iOS и запустить приложение на симуляторе?

Спасибо !

0

Решение

Я бы не стал устанавливать разные пути поиска заголовка.

Используйте TargetConditionals.h, как вы упомянули, чтобы отключить Vuforia при сборке для симулятора. Затем, чтобы позаботиться о связывании, я предлагаю использовать OTHER_LDFLAGS вместо фазы сборки «Связь с библиотеками», поскольку вы не можете обусловить эту фазу сборки платформой. Вы можете легко сделать это с помощью xcconfig, например:

OTHER_LDFLAGS = -framework Vuforia
OTHER_LDFLAGS[sdk=*simulator] =
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]