Xcode 4 Archive build не находит импорт в предварительно скомпилированных заголовках - PullRequest
4 голосов
/ 08 июня 2011

У меня есть проект, который не будет правильно собирать архив в Xcode 4. Мне кажется, что команды «Построить для архивирования» и «Архивировать» строятся по-разному, и я не могу определить причину, почему!

подробности:

  • Рабочая область содержит два проекта: приложение и статическую библиотеку; проекты организованы как пэры.
  • «Build» и «Run» работают правильно; приложение выполняется в симуляторе iOS и на устройстве.
  • «Build for Running», «Build for Testing», «Build for Profiling» и «Build for Archiving» также работают правильно.
    • Сборка для работы отладка, сборка для профилирования - выпуск, поэтому обе конфигурации были протестированы.
  • «Архив» не работает!

Ошибка 1 (Библиотека):

Когда я пытаюсь выполнить команду «Архивировать» в библиотеке, пользовательский скрипт ресурса завершается ошибкой. Сценарий читает из каталога ресурсов ($ RESOURCES_DIR)

Для сборок релиза это сопоставляется с:

... DerivedData / App-uniquecrap / Build / Продукты / Релизы-iphoneos / Ресурсы / LibraryName

Для архива это сопоставляется с:

... DerivedData / App-uniquecrap / ArchiveIntermediates / Создание фреймворков / BuildProductsPath / Release-iphoneos / Ресурсы / Имя_библиотеки

Кроме Resources отсутствует в ArchiveIntermediates дереве!

ОБНОВЛЕНИЕ: Первая часть проблемы вызвана неправильным цитированием в файле скрипта. Пути Xcode4 теперь включают в себя папку со встроенным пробелом (представьте, что!), И пути в кавычках неправильно работают не так, как хотелось бы. Это исправлено, у меня все еще есть проблема, что файлы ресурсов, скопированные на этапе сборки Gather Resources, не попадают в правильное расположение; скрипт ожидает их в $ (RESOURCE_DIR), но я не могу найти правильную настройку в Gather Resources, чтобы отправить их туда. Предложения?

Ошибка 2 (приложение):

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

Ничего необычного здесь тоже нет; Заголовки импортируются в файл pch обычным способом:

#import <LibraryName/Library.h>

Как и раньше, "Build", "Build for Archiving" и т. Д. Выполняются без проблем. «Архивировать» не удается. Либо включаемые пути настроены правильно, и «Архив» их игнорирует; или пути включения настроены неправильно, и XCode автоматически волшебным образом исправляет их в других сборках. (В любом случае, я очень расстроен).

Как я (A) могу заставить работать сборки Archive; или (B) выяснить, что происходит, чтобы я мог выполнить (A)?

Спасибо.

...