Подтвердить что ты не робот

Изменение источника статической библиотеки требует очистки и сборки в xcode 4

У меня есть проект iOS, который построен на проекте фреймворка, который мы используем в разных проектах iOS. Структура включена в проект приложения как проект xcode. Проект приложения зависит от цели построения статической библиотеки framework. (Подобно большинству библиотек с открытым исходным кодом, таких как три20)

Проблема в том, что если я что-то изменил в исходном коде рамки, статическая библиотека не перестраивается, когда я создаю и запускаю проект приложения.

Выполнение очистки, за которым следует сборка и запуск изменений, скомпилированы правильно. Выполнение перестройки каждый раз, когда я что-то меняю в рамках, не является хорошим решением по понятным причинам.

Есть ли параметр, который мне нужно изменить, чтобы xcode правильно идентифицировал мою инфраструктуру как загрязненную и строит ее соответственно?

Я использую xcode 4.0.2

4b9b3361

Ответ 1

Это ошибка в xcode 4.0.2 (может быть исправлена ​​в будущей версии). Из https://devforums.apple.com/thread/91711?start=25&tstart=0:

  • Установить статические библиотеки в проекте, в рамках Рамок: относительно Создание продуктов
  • Закрыть XCode
  • Измените project.pbxproj и удалите все компоненты пути статической библиотеки, чтобы осталось только имя файла filename (важная часть - path = libLibrary.a)

    A74F787413566130000D0AFC/* libLibrary.a */= {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; };

Ответ 2

Возможно, вам не хватает зависимости между вашей целью и статической библиотекой.

Чтобы добавить зависимость:

  • перетащите/удалите проект Xcode статической библиотеки в своем проекте

    1b. добавьте библиотеку в свои рамки приложения (я понимаю, что она уже существует);

  • выберите цель; показать панель информации;

  • перейдите в Зависимости, нажмите "+", затем выберите свою статическую библиотеку.

Эти инструкции действительны для Xcode 3.2.x, но я надеюсь, что на основе этого вы можете легко найти выход из этого с помощью Xcode 4.

EDIT: Для Xcode 4 отметьте this и this (отредактированная часть вопроса для обходного пути).

Ответ 3

Добавьте шаг script, где вы установили файл main.m как измененный

#Force dependencies' relink
touch MyProject/main.m