уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Mac OS logo Итак, настало время немного познакомиться с разработкой в Delphi XE2 не только под Windows. Надо сказать, что уже довольно давно собирался написать подобную статью, но, сами понимаете, ради интереса покупать продукцию Apple — затея сомнительная. Пробовал задействовать под это дело виртуальную машину, но то ли образ был какой-то недоделанный, то ли я чего-то не понял с первого раза, однако PAServer ни как не желал устанавливаться и тема разработки в Delphi XE2 под Mac OS ушла, что называется, «в долгий ящик». А недавно, читатель блога с ником Bogdan посоветовал использовать образ для VMWare с Mac OS X Lion 10.7.1 для разработчиков. Спасибо Bogdan’у за совет — виртуалка оказалась, в отличие от предыдущей, вполне работоспособной. И поэтому сегодня я решил опубликовать пост, наподобие «DVCS Git и TortoiseGit в картинках. Пособие для начинающих чайников» и рассказать как начать разработку под Mac OS и написать первое приложение в Delphi, которое запуститься не под Windows.

Итак, что нам потребуется для работы:

  1. VMWare Workstation 8 (на крайний случай 7.х, но на этой версии работоспособность виртуальной машины я не проверял)
  2. Образ виртуальной машины с Mac OS, про который вы можете почитать вот в этом комментарии.
  3. Установленная и готовая к работе Delphi XE2 (желательно с последними апдейтами)

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

  • Процессор: Intel Core i3 3,2 GHz (2-х ядерный)
  • RAM 6 Gb
  • Video 512 Mb
  • ОС Windows 7 Professional x64 со всеми обновлениями

Работа с виртуальной машиной

Прежде всего, если у вас слабенький Интернет-канал, наберитесь терпения, т.к. образ виртуальной машины с Mac OS имеет довольно большой размер — 22,56 Гб в сжатом состоянии.

После того как архив с образом скачан, распаковываете его в любое удобное для Вас место на жестком диске (для этого надо иметь минимум 36 Гб места на диске).

Теперь скачиваете VMware Workstation 8 и устанавливаете.

В директории с образом виртуалки есть директория с названием «VMware Patch» в которой лежат патчи для Windpws и Linux. Запускаете с правами администратора файл Windows.bat. На этом подготовительные работы закончены.

Теперь настроим VMware. Запускаем программу и переходим в раздел настроек: Edit — Preferences

VMware Preferences

Здесь нам необходимо зайти в раздел Priority и выбрать в списке Input grabbed значение High:

Кроме этого, зайдите в раздел Memory и убедитесь, что под виртуальную машину будет зарезервировано максимально возможное количество памяти, а в разделе Additional Memory выбран пункт «Fit All virtual machine memory into reserver host RAM«:

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

Теперь заходим в меню File -> Open и открываем файл с виртуальной машиной «Mac OS X 10.7 DP2.vmx«. После того, как виртуальная машина открыта, можете изменить её настройки — указать расшаренные папки, количество оперативной памяти и т.д.

Если все сделано правильно, то теперь виртуальная машина с Mac OS X Lion 10.7.1 на борту должна запуститься без проблем:

Mac OS X Lion 10.7.1

Mac OS X Lion 10.7.1

На этой оптимистической ноте можно было бы завершить первую часть статьи, но вполне возможно, что кто-то из Вас столкнется с проблемой как и некоторые другие пользователи, скачавшие этот образ: виртуальная машина запускается, но висит первая заставка Mac OS и ОС дальше не запускается. В этом случае убедитесь, что патч был запущен от имени администратора (после запуска патча можете также на всякий случай перезагрузить компьютер), а также убедитесь, что в BIOS вашего компьютера разрешена виртуализация. У меня виртуалка стартовала без проблем с первого раза.

Теперь переходим к следующему пункту.

Установка PAServer под Mac OS и Windows

Вообще-то этот пункт достаточно подробно расписан в официальной Wiki Embarcadero, но, как говориться, из песни слов не выкинешь — рассмотрим этот пункт в статье, тем более, что в работе мы используем виртуальную машину.

Для установки PAServer я не стал расшаривать никаких директорий для совместного использования их в виртуальной машине, а просто скопировал архив с установочным файлом под Mac OS на флешку.

ZIP-архив для установки PAServer’а под MAC OS располагается в директории (Delphi XE2 устанавливалась с путями по умолчанию):

c:\Program Files (x86)\Embarcadero\RAD Studio\9.0\PAServer\ 

Копируем zip-архив на flash. Чтобы виртуальная машина смогла увидеть нашу флешку, заходим в меню VMware:

VM -> Removable Devices

выбираем пункт, соответствующий вашей флешке (в моем случае это был Kingston Patriot Memory) и в подменю выбираем пункт Connect:

На рабочем столе Mac’а появился наш съемный диск с именем «NO NAME«. Открываем флэшку и двойным кликом по файлику paserver_setup.zip распаковываем архив. После чего запускаем setup_paserver.app. Здесь MAC OS должен Вам сказать, что для дальнейшей работы необходимо установить недостающие элементы (Java) — соглашайтесь и ОС сама загрузит, то, чего её не хватает:

После установки снова вызываете установку  setup_paserver.app и запуститься процесс установки PAServer:

После установки наш сервер необходимо запустить. Для этого необходимо воспользоваться терминалом. Для тех, кто имел дело с Linux этот пункт не вызовет никаких проблем и недоумений — всё как всегда :).

Для запуска терминала необходимо выбрать в главном меню «Переход -> Утилиты» и в открывшемся окне выбрать «Терминал»:

Примечание:  cmd.exe в Window и Терминал в MAC OS и Linux — далеко не одно и то же. Терминал имеет на порядок больше возможностей для работы в ОС и, при должном опыте работы, Терминал может стать для Вас даже удобнее GUI.

В терминале последовательно набираем следующие строки (после каждой строки жмем Enter:

cd Applications
cd Embarcadero
cd PAServer
PAServer

Таким образом мы добрались до директории где лежит установленный нами PAServer. На рисунке ниже представлено окно терминала с уже набранными командами, а также показано окно с открытой директорией:

 

Теперь набираем в териминале строку ./paserver (точка и слэш в начале обязательны) и наш сервер запуститься о чем в терминале появится соответствующая запись и предложение ввести пароль:

Пароль можно не вводить и просто нажать Enter. PAServer сообщит, что он успешно запущен и укажет какой порт был при этом открыт:

Чтобы завершить работу PAServer достаточно набрать в терминале команду «q» (без кавычек), но мы этого делать не будем, а просто свернем окно с виртуальной машиной и перейдем к установке PAServer в Windows.

При установке под Windows все просто — запускаете файл setup_paserver.exe, который лежит в той же директории, что и zip-архив для MAC OS и следуете инструкциям на экране. Никаких запусков делать не требуется.

На этом установка PAServer завершена. Можете почитать статью в Wiki Embarcadero и попробовать настроить PAServer согласно своим предпочтениям, но я решил оставить все настройки как есть.

Пишем первое приложение для Mac OS

Вот теперь настал долгожданный момент, когда можно начать разработку своей первой программы для Mac OS. Запускаем Delphi XE2 в привычной для нас Windows и создаем новый проект с Firemonkey, например, Firemonkey HD Application.

Для первого раза нам хватит обычного HelloWorld’а, поэтому кидаем на главную форму приложения Label и пишем, что-то вроде такого:

Теперь главное — настройка профиля для отладки приложения в MAC OS. В Project Manager заходим в Target Platforms и через контекстное меню добавляем новую платформу:

В открывшемся окне выбираем OS X и делаем эту платформу активной:

В Project Manger выбираем эту платформу и в контекстном меню жмем пункт «Assign Remote Profile»:

В открывшемся окне жмем кнопку Add (внизу) и перед нами открывается мастер настройки профиля:

Имя профиля можете задать любым, например «My First Profile». Жмем «Next>>»

Во втором окне необходимо указать хост (компьютер на котором установлена OS X и запущен PAServer). Убедитесь, что ваша виртуальная машина работает и PAServer корректно запущен (см. запуск сервера выше). Если все сделано правильно, то в списке хостов появится имя нашей виртуальной машины:

Так как я не менял никаких настроек PAServer, то остальные поля в этом окне я не трогаю и проверяю соединение, нажав кнопку «Test Connection»:

Как видите, моя виртуалка и Windows 7 x64 прекрасно сконнектились и можно двигаться далее. Жмем «Next>>»

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

Поэтому просто жмем Finish и закрываем Мастер настройки профиля. Теперь выбираем в списке профилей только что созданный и жмем «Ok«. Что дальше? А, в принципе, и все. Можете разрабатывать свою программу в Windows и отлаживать её работы под MAC OS :). Как обычно, жмем в Delphi XE2 F9 и наблюдаем как в виртуалке запуститься наше первое приложение под Mac OS X Lion:

Вот, пожалуй, для первого раза и всё. В этой статье мы настроили виртуальную машину с Mac OS X Lion на борту, установили PAServer под обоими операционными системами, настроили профиль для отладки приложений и написали свое первое приложение для Mac OS. На первый раз, думаю, информации достаточно.

Естественно, что разработать нормальное приложение, не зная особенностей целевой ОС, невозможно, точно также как использовать  китайские приборы ночного видения, не зная для чего они предназначены. А так как я сегодня второй раз в жизни увидел Mac OS, то, по мере свободного времени, постараюсь немного покопаться во внутренностях этой операционной системы и расказать по-подробнее про разработку под OS X с использованием Delphi XE2 и Firemonkey. Ну, а если у Вас возникнут какие-либо вопросы по данной теме или просто захотите пообщаться на заданную тему, то как обычно, для вас открыты комментарии и дополнительно будет создан отдельный раздел на форуме WebDelphi.ru в котором вы сможете найти необходимые ссылки и инструкции по работе.

 

 

5 1 голос
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
26 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Bogdan
Bogdan
14/01/2012 11:28

Отличная статья! Рад что всё получилось =) Надеюсь в скором времени почитать статьи о более тесном взаимодействии с системой, о Carbon API и т.д. для того, чтобы Delphi приложение не выглядело под Mac’ом «как пришелец из другого мира».
+1

Bogdan
Bogdan
14/01/2012 12:11

Отличная статья! Рад, что всё получилось =) Надеюсь в скором времени почитать статьи о взаимодействии с Mac’ом на более высоком уровне, Carbon API, ну и т.д. Чтобы Delphi приложение в нём не выглядело «как пришелец из другого мира» )
P.S.: Всем широких каналов на виртуалку! =)

Bogdan
Bogdan
14/01/2012 12:14

Извиняюсь за два одинаковых комментария, да ещё и подряд =\ Спасибо моему инету который заставил меня поверить в «Нет комментариев», после публикации оного. =/

Ruslan Panov
Ruslan Panov
14/01/2012 18:49

Это всё конечно прекрасно. На Mac OS X 10.6.3 — 10.6.5 при запуске программы вылетает паника ядра, и немного не ясна структура приложения. Сделал вот так
project.app    —    приложение (каталог)
project.app/Contents    —    подкаталог
project.app/Contents/project.info.plist    —   файл с описанием программы
project.app/Contents/MacOS    —    подкаталог с бинарниками
project.app/Contents/MacOS/project   —   исполняемый файл приложения
project.app/Contents/MacOS/libcgunwind.1.0.dylib   —   не знаю что это, но он требует
project.app/Contents/Resources   —   покаталог для ресурсов
 project.app/Contents/Resources/project.icns   —   иконка приложения
 
Копирую всё это добро в Applications и результата ноль
 
 

zdm
zdm
14/01/2012 22:20

Bogdan и от меня то-же спасибо, то-же весело пара образов но  руки не доходили , попробовав, что было не помогло, твоя ссылка рильно рабочая.

Bogdan
Bogdan
15/01/2012 16:03

Да не за что, рад, что у всех работает. Да и я, прежде чем Владу о ней писать — сам ведь проверил и поставил, не  качать же всем 22ГБ вслепую =)

Evers
Evers
16/01/2012 11:15

Чтоб я сдох! Если не Socket Error, то обязательно Remote error: Unauthorized user, all server requests are ignored! Как исправить ?

Георгий
Георгий
16/01/2012 14:48

Классный пост

Всеволод Леонов

@Bogdan
>>чтобы Delphi приложение не выглядело под Mac’ом «как пришелец из другого мира
уже не выглядит.

Гигантский титанический труд! Восхищен подробностью и качеством!
Один маленький комментарий (чисто показать, что прочитал внимательно). Чтобы грузануть правильно PAServer не нужно запускать терминал, а потом ./paserver. Можно просто с Finder-а из нужно папки запустить paserver.command . Этот командник появился не сразу, в одной из последний бет (если память не рубит — с 9-ой), но в доках не поменялось. Paserver.command немного экономит клики :)

Dmitry
Dmitry
29/02/2012 23:59

Все сделал по-порядку как описано в статье. Такая проблема при Assign Remote Profile. Не видит виртуальную машину. Порт есть, а вот Host Name — нет. Подчеркиваю. ВСЕ СДЕЛАНО ПО  ИНСТРУКЦИИ!
Попробовал сам ввести Mac-Mac — не помогло. Потом Mac — тоже не помогло. Ввел IP. Тоже без результата. Пишет EIdSocketError: Socket Error # 11004
Помогите. Что делать?

Программирование на delphi
Программирование на delphi
29/03/2012 22:08

Наконец-то delphi начал поддержку не только винды! Отличная статья!

trackback

[…] статья небольшое продолжение сразу трех статей: "Delphi XE2: Hello, Mac OS!" в которой рассмотрен простенький пример создания […]

Сергей Румянцев

Обломался я на этапе виртуализации. Мой процессор к сожалению не поддерживает аппаратной виртуализации. Придется искать образ, который запуститься без неё.
 

Bogdan
Bogdan
17/04/2012 17:42

Сергей Румянцев, к сожалению таких нет. Смените конфигурацию машины. Купите новый процессор.

Сергей Румянцев

Bogdan, я года 2 назад перешел на NetTop, меня привлекает малый размер вместе с хорошей производительностью (Проц: Intel Atom 330 с 2мя ядрами x64, RAM: 4Gb и HDD: 1Тб). Буду компилить на этой машинке, а тестировать на настоящем маке.

Akella
18/10/2012 01:29

А есть возможность разрабатывать приложения для iPAD/iOS?

trackback
Delphi XE3: работа с Mac OS X. | Delphi в Internet
29/10/2012 05:06

[…] мое знакомство с Mac OS X, как обычно, с "Hello, World" и там, собственно, никаких проблем и вопросов не […]

trackback

[…] поводу использования Synapse при компиляции приложения под MAC OS. Попытка собрать такое приложение, по крайней мере у […]

trackback

[…] я уже рассказывал ранее, поэтому можете ознакомиться с этой статьей (в ней же рассказано и про настройку профиля).  Я же […]

Aine
Aine
16/06/2014 00:52

Тоже выпадает Remote error: Unauthorized user, all server requests are ignored!
Как исправить?

trackback
01/11/2014 16:08

[…] Оригинал статьи http://www.webdelphi.ru/2012/01/delphi-xe2-hello-mac-os/ […]

Фёдор
Фёдор
28/01/2016 02:58

Если PAServer не конектится, учтите, что версии у них должны совпадать. Проверено, 17 на Win и 16 на виртуалке (MAC OS) не хотят работать в паре.