2009-11-16 6 views
5

Я приближаюсь к завершению моего первого относительно простого проекта Xcode (пользовательский установщик), и мне нужно сделать 22 сборки. Да, это была не опечатка! В каждой сборке различается PRODUCT_NAME, исходный файл в папке «Ресурсы» и переменная, которая говорит, является ли программное обеспечение пробной версией или нет.Самый эффективный способ сделать 22 разных сборки

Из того, что я до сих пор читал, дублирование существующей цели, похоже, является способом сделать это, когда есть только несколько сборок, но это все еще верно для 22? Кажется, это ужасно много работы. То, что я имел в виду, это способ изменить PRODUCT_NAME, исходные файлы, которые скопированы в папку «Ресурсы», и пробный режим boolean. Но я застрял.

благодаря

ответ

1

Я бы, наверное, написать сценарий, который используется шаблон .xcodeproj и sed генерировать все необходимые комбинации.

1

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

Scripting, безусловно, может выполнить свою работу, но как только проект вырастет до значительного количества файлов, или если вы обнаружите, что меняете количество сборок, изменение сценария может стать волосатым. CMake позволит вам организовать эти сценарии, поэтому в будущем это будет немного легче сделать.

2

Мой ответ кишка, что 22 различные сборки, которые отличаются только одним исходным файлом не так ...

Не может ли проблема быть повернут вокруг? Включите все 22 разных версии вашего приложения в одной сборке и поставьте 22 разных файла ключа/лицензии в папку .app, каждая из которых разблокирует одну из 22 версий.

+0

К сожалению, нет. Это плагины, защищенные от копирования, поэтому для отдельной загрузки они должны быть отдельными сборками. – user212253

+0

Плагины - создавайте одно приложение и поставляйте разные плагины, каждый из которых содержит желаемую функциональность. Хотя это почти возвращает 22 проблемы сборки ... –

2

Один из способов, которым я достиг в прошлом, - использовать Локализацию. Когда вы используете макросы с добавлением NSLocalizedString, некоторые из них имеют возможность указывать имя таблицы (т. Е. Другой файл строк, чем значение по умолчанию). Тогда всякий раз, когда мне нужна по-разному заклейменная сборка, я просто создаю новый файл .strings с соответствующими парами ключ-значение.

У меня есть цель сборки, которая строит код со значениями по умолчанию, а вторая цель принимает встроенный код и копирует соответствующий файл .strings в нужное место. Это работает очень хорошо и позволило нам управлять множеством различных вкусов.

Смежные вопросы