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

Автоматические сборки в моноточе

В настоящее время я пытаюсь реализовать однострочное решение для сборки (без необходимости запуска интегрированной среды IDE) для моих проектов monotouch, где я могу указать профили подготовки и сертификаты подписи кода. Я искал популярные инструменты сборки, такие как nant, ant и maven, но никто не поддерживает monotouch. Кто-нибудь пробовал что-то подобное?

4b9b3361

Ответ 1

Я работал с Дженкинсом (он же Хадсон).

В основном вы настраиваете сервер Jenkins и настраиваете свой Mac как сервер сборки slave. (Я использовал подчиненный JNLP).

Оттуда вы можете запустить любую командную строку, которая вам нужна в сборке, поэтому вам просто нужно запустить mdtool с некоторыми аргументами, например:

/Applications/MonoDevelop.app/Contents/MacOS/mdtool -v build "--configuration:Release|iPhone" "Path/To/YourSolution.sln"

Одна вещь, о которой стоит беспокоиться, это то, что для подписания приложения iOS подчиненный процесс должен запускаться под вашим пользователем. Таким образом, вы не можете создать для него демон Mac, вам придется запускать подчиненный процесс при запуске для вашего пользователя и минимизировать его, что вызывает раздражение.

Ответ 3

спасибо для ваших ответов. Однако в этом случае мне не нужно использовать такую ​​тяжелую артиллерию. Поскольку я разрабатываю одно и малое приложение, я закончил создание трех различных конфигураций сборки в своем решении, потому что я узнал, что можно настроить разные идентификаторы кодов и профили подготовки для каждого из них (Development, Ad-Hoc, AppleStore) в меню настроек проекта monodevelop.

Затем в конфигурации AppleStore/Ad-Hoc я добавил команды post build, поэтому я могу автоматически создать файл .ipa(в основном создать папку "Полезная нагрузка" и скопировать в нее файл .app, а затем закрепить его в файл .ipa, а также файлы иконок и itunesartwork).

Наконец, я создал bash script, который вызывает mdtool с любой конфигурацией, поэтому я могу создавать и генерировать исполняемые файлы .ipa, просто выполняя script.