Один из способов, несколько рубить, чтобы добавить Run Script для сборки фазы каждого приложения, как первый элемент, и он скопировать config.h в какой-то известное место - /tmp/Config.h, и ваша включенная библиотека будет искать его там. Поскольку файл копируется на каждую сборку, он всегда будет правильным.
EDIT1: Так не красиво, но вы можете добавить сценарий запуска сборки только под зависимостями в библиотеке. Просто добавьте его и установите флажок, чтобы показывать переменные среды. Вы можете увидеть это один набор:
file_list =/Volumes/Data/Users/dhoerl/Library/Developer/Xcode/DerivedData/MyProject-fdzaatzqtmrnzubseakedvxmsgul/Build/полупродукты/MyStaticLibrary.build/Debug-iphoneos/MyStaticLibrary.build/Объекты/LinkFileList
что вы можете увидеть, что некоторые из них имеют в качестве префикса текущую папку проекта:
/Volumes/Data/Users/dhoerl/Library/Developer/Xcode/DerivedData/MyProject-
Вы можете написать какой-нибудь скрипт там, чтобы получить префикс, а затем добавить локальный путь к файлу Config.h, и теперь у вас есть полный путь к заголовку Config.h, который затем можно скопировать в известное место в библиотеке. Я собираюсь опубликовать на форуме xcode, поскольку может быть лучшее решение - там будет Xcode 3. Я обновлю это, если я получу что-нибудь существенное.
EDIT2: Попробуйте это: 1) Нажмите на библиотеку, нажмите на Строительства фазам, добавьте Run Script Построить фазу, нажав в правом нижнем углу «+» кнопка
2) Перетащите его так, его второй пункт в список (ниже целевые зависимостей)
3) Изменения консоли для "/ bin/КШ"
4) Вставьте это, после его редактирования, чтобы иметь соответствующие файлы/путь:
# Get the Project Name (assumes upper/lower/numbers only in name)
PROJ=$(echo $BUILD_DIR | sed -En -e 's/(\/.*\/)([A-Za-z0-9]+)-([a-z]+\/Build\/Products)/\2/p')
# Use this variable to construct a full path
FULL_PATH="/Volumes/Data/Users/dhoerl/Downloads/nightmare/"$PROJ"/"$PROJ"/HelloWorldLayer.h"
echo FULL_PATH equals $FULL_PATH
# Make Sure MyStaticLibrary is correct
echo PROJ_DIR equals "$PROJECT_DIR/MyStaticLibrary"
cp -f "$FULL_PATH" "$PROJECT_DIR/MyStaticLibrary"
5) Предполагается, что вы помещаете библиотеку в любом месте, но каждый проект приложения должен иметь одну и ту же родительскую папку (не большая часть ограничений - то, что я делал в прошлом).
PS: Когда я это делаю, я обычно не включаю фактический файл приложения, но создаю заголовок для класса, который не создается в библиотеке. Позволяет называть это Foo. Итак, в вашей библиотеке у вас есть Foo.h, и в нем есть много методов, которые возвращают информацию - количество виджетов, расположение какой-либо специальной папки, plists, массивов, словарей и т. Д. Идея заключается в том библиотека знает, как получить то, что ему нужно через этот интерфейс (класс одноплодной или просто класс с методами класса YMMV
PSS:.. Кто-нибудь читает это, он платит, чтобы создать демонстрационные проекты
не работает для меня Я загрузил образец проекта в ** [здесь] (http://dfiles.eu/files/vj7egy9ig) ** и ** [здесь] (http://www.sendspace.com/file/dfvs09) * *, поэтому вы можете видеть мою боль. – SpaceDog
Глядя на это ... –
отлично! Благодаря!! – SpaceDog