Разработка под iOS на Visual Studio (Xamarin.iOS/Monotouch)

VS and iOS

Для разработки под iOS на Visual Studio с использование Xamarin.iOS(Monotouch) нужно специфичное окружение:

  1. Windows: Visual Studio + Xamarin.iOS
  2. Mac OS(или виртуальная машина): Xcode + Xamarin.iOS

Где на Windows происходит компиляция в Mono-бинарники, после чего они отправляються на Mac OS. Там уже происходит компиляция в нативный код, а также запуск приложения на симуляторе или устройстве. При необходимости с отладкой, которая свяжется с Visual Studio.

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

Как все это вместе собрать и соединить, а также какие могут возникнуть подводные камни ниже.

Виртуальная машина

Советую найти образ с уже установленной системой. Я взял за основу MAC OS X Mountain Lion 10.8.3, для него потребуется VMware Workstation 9.x. Если вы решили его использовать, единственное что нужно сделать перед запуском, это увеличить объем памяти выделяемый системе, нужно минимум 2Gb.

Если VMware ругается на наличие Hyper-V, то его можно легко отключить Hyper-V через консоль:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

И включить Hyper-V, если он вам понадобиться:

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

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

От первого запуска виртуальной машины до рабочего стола проходит около 5 минут.

Установка инструментов на Mac OS

Xcode

Install Xcode

Ставим Xcode через App Store, у меня это заняло порядка 20 минут.

Теперь нам нужно обновить SDK и документацию для него до последней версии, без этого возможны ошибки при компиляции и запуске:

  1. Запускаем Xcode.
  2. Через главное меню сверху, открываем Preferences.
  3. Открываем вкладку Downloads и нажимаем Check and Install Now.
  4. Ждем порядка 30 минут.

Update Xcode

Xcode готов к компиляции нашего кода, больше он нам его трогать не понадобится.

Xamarin.iOS

C xamarin.com скачиваем последнюю версию Xamarin.iOS и устанавливаем ее. На это понадобиться около 10 минут.

Install Xamarin.iOS

Для работы с Visual Studio нужна Business версия.

Если у вас ее нет, то можно воспользоваться пробным периодом на 30 дней. Чтобы его активировать нужно:

  1. Запустить Xamarin Studio.
  2. Нажать на Login справа и зайти под своей учетной записью или создать новую.
  3. Создать проект на базе любого шаблона приложения под iOS.Xamarin Login
  4. В меню выбираем Project -> Profile — Mono…Xamarin How get Business Trial
  5. Появиться окно, которое предложит нам купить или попробовать бизнес версию.

На этом настройка инструментов и виртуальной машины законченна. В целом на это придется потратить около 1.5 часа, а образ диска виртуальной машины будет весить около 15Gb.

Подключаем Visual Studio

У меня установленная Visual Studio 2012, поддержку Xamarin.iOS для других версий нужно уточнять. 

Что нужно сделать:

  1. Скачать и установить Xamarin.iOS.
  2. Войти в аккаунт Xamarin, который используется в Mac OS.Visual Studio Xamarin Login
  3. Создать проект под iOS по шаблону HelloWorld Application.
  4. Появиться окошко с выбором Build Host-а.Connect to Build Host
  5. Найти в нем вашу Mac OS и подключиться(если сразу не дает нажать Connect, можно попробовать нажать Diagnose…, откроется окно с более подробными этапами подключения)Build Host Diagnosis

После того, как все это проделано, наша Visual Studio теперь связанна с Mac OS. И мы можем собирать приложения, а также запускать их на симуляторе или телефоне.

Выбираем профиль сборки iPhoneSimulator,и у нас панелька Xamarin.iOS приобретает такой вид:

Xamarin Toolbar

Но для запуска на надо проделать еще одну вещь, это правильно выставить параметры приложения в свойствах проекта. Без этого приложение не запустится на эмуляторе. А если вы уже пробовали запускать без них, то придется на эмуляторе сделать сброс настроек.

Правой кнопкой мыши по проекту, выбираем Properties, переходим на вкладку iOS Application. Необходимо обязательно заполнить поля: Application name, Identifier, Version.

iOS Application Properties

После чего жмем кнопку Start, начнется поэтапная сборка проекта:

  1. Visual Studio соберет exe-файл и отправит его на Mac OS.
  2. Xcode перекомпилирует приложение в нативный код iOS.
  3. Приложение запуститься в симуляторе.

В конечном итоге все должно выглядеть примерно так:Finish Screen