Изменения в подпроекте не очевидны при повторном запуске приложения - PullRequest
0 голосов
/ 01 июня 2011

У меня проблема с подпроектами (обычные, вложенные проекты) в Xcode4.

Моя ситуация такова: у меня есть проект с именем App и подпроект с именем Lib . Приложение зависит от Lib . Я могу скомпилировать и запустить App , и все будет скомпилировано и связано, как я ожидал, и отлично работает.

Проблема возникает, когда я изменяю файл в Lib и пытаюсь повторно запустить Приложение . Похоже, что изменения в подпроекте Lib компилируются, так как если есть ошибки компиляции, они отмечаются. Тем не менее, изменения не отражаются при запуске App . Кажется, что изменения неправильно связываются.

Проект был перенесен из Xcode3, где эта проблема не возникала.

Вероятно, с этим связано следующее. Я использую простой условный оператор журнала, который выводит операторы журнала только тогда, когда проект компилируется в режиме отладки. Это макрос, который определяет функцию с именем DLog и используется как в приложении, так и в Lib. В App все работает нормально, и выписываются записи в журнале. Однако в Lib операторы не отображаются.

Что происходит? Как будто связь между проектами как-то нарушена. Кто-нибудь еще видел это и что за исправление, пожалуйста?

1 Ответ

0 голосов
/ 13 декабря 2011

Мне кажется, что-то напоминает, что в Xcode 3 параметры сборки приложения каскадно перешли на подпроект Lib /.Могу поспорить, что теперь Lib полностью отличается, почти как если бы эти двое были пирами в рабочей области Xcode 4.Я хотел бы рассказать вам / себе / миру, как каскадировать эти настройки, кроме использования файлов .xcconfig.

Вероятно, вы можете решить проблему зависимости, включив Lib в схему сборки приложения (поиск«Схема редактирования XCode»; вы хотите, чтобы порядок был Lib -> App).Если это не устранено, снимите флажок «Parallelize Builds» и попробуйте снова.

Ваш макрос DLOG, вероятно, определен или включен в файл PCH вашего приложения, и не будет (или «больше не будет») каскадироваться к PCH библиотеки Lib.Вы можете

  1. поместить этот макрос в файл .h в вашей библиотеке Lib
  2. , чтобы убедиться, что файл .h является общедоступным (поиск "Фазы сборки Xcode, копировать заголовки public" )
  3. #include "your_macro_file.h" в обоих файлах PCH.

Это должно заставить ваш DLOG работать в обоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...