Многие разработчики Unity3D использует Windows, и при сборке игры под iOS возникает много проблем и танцев с бубном вокруг виртуальных машин с OS X.

Ребята из юнити сделали нам большой шаг навстречу: они дали возможность собирать билды под различные устройства в облаке, абсолютно не обращая внимания на то, на каком устройстве мы работаем.

Логика работы следующая:

1. Проводите первоначальную настройку
2. Заливаете исходники проекта в систему контроля версий
3. Создаете специальную ветку для билда и заливаете в нее текущую версию игры
4. Облако выкачивает эту версию и производит сборку



Вот как это делается:

Выбираем систему контроля версий, сейчас поддерживается git mercurial svn perfoce. Я перепробовал все и остановился на mercurial. Создаем репозиторий и заливаем на выбранный хостинг наши исходники. Выбор системы, создание репозитория и прочии основы работы с системы контроля версий я опущу, на Хабре достаточно статей на эту тематику.

В репозитории создаем ветку для билдов из которой Unity Cloud будет выкачивать исходники и заливаем в нее рабочую версию. Устанавливаем последнюю версию Unity3D и нажимаем кнопку с облаком, затем проходит авторизацию на облаке Unity и создаем новый проект:



Переходим в раздел Cloud Build и жмем на внешний линк:



Мы попадем в веб интерфейс управления проектами, я перешел в новую бета версию:



Указываем адрес нашего репозитория, его тип и пользователя для подключения:



Далее выбираем платформу под которую будет собираться билд, в нашем случае ios:



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



На следующем шаге нам потребуется компьютер с OS X, нам нужно будет получить сертификат, .mobileprovision и указать Bundle ID:



Давайте по порядку, Bundle ID можно узнать на сайте itunesconnect.apple.com/:



Сертификат p12 разработчика нужно заранее создать с помощью xcode, инструкций так же предостаточно и описывать здесь я их не буду, укажу только где их скачать. Найдя машину с OS X или используя виртуальную машину с этой операционкой, нужно зайти на сайт https://developer.apple.com, далее в раздел Certificates, Identifiers & Profiles. Далее выбираем раздел сертификаты:



В разделе Provisioning Profiles. В разделе All скачиваем наш iOS Distribution сертификат. На OS X открываем его и добавляем в раздел login/вход:



В приложении Keychain Access в левой колонке выбираем разделы Вход и Мои сертификаты. Выбираем наш сертификат и жмем File -> Export Items... В появившемся окне экспорта нужно удостовериться что формат выбран Personal Information Exchange (.p12). Далее Вы создадите пароль сертификату, который вы будете указывать в Unity Cloud Build при его добавлении.

Теперь создадим .mobileprovision файл. Заходим так же на портал https://developer.apple.com
нас интересует раздел iOS Provisioning Profiles, в нем нажимаем на +



И выбираем один из этих вариантов, один для публикации в App Store второй для тестирования на устройствах тестировщиков:



Далее выбираем учетку разработчика, приложение и список устройств для тестирования, в конечном результате получаем заветную кнопку download.

Следующий шаг загрузить полученный mobileprovision и сертификат в Unity Cloud Build и указать его пароль. Если Вы все сделали правильно появится сообщение start building и в списке проектов появится запись о текущем состоянии билда:



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

Комментарии (6)


  1. InstaRobot
    05.11.2015 19:29

    Приветствую! Опция безусловно отличная, но хотел спросить на всякий случай. Так она же вроде только для версии ПРО? Или я что то путаю?


    1. DragonRider
      05.11.2015 20:07

      Достаточно бесплатной версии


      1. InstaRobot
        06.11.2015 02:05

        Действительно. Все работает. Спасибо за статью. Ждем продолжения


      1. InstaRobot
        06.11.2015 02:06

        Только у меня проблема сборок именно для Андроид, так как работаю с Мак


        1. vitaly_KF
          06.11.2015 07:52

          Поделитесь, в чём проблема? Под маком ведь есть необходимый SDK


          1. InstaRobot
            06.11.2015 14:22

            В неудобстве работы с Андроид устройствами. В том, что СДК занимает неприлично много места.