Самый эффективный способ сделать 22 разных билда - PullRequest
5 голосов
/ 16 ноября 2009

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

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

спасибо

Ответы [ 4 ]

2 голосов
/ 16 ноября 2009

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

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

2 голосов
/ 16 ноября 2009

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

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

1 голос
/ 16 ноября 2009

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

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

1 голос
/ 16 ноября 2009

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

...