Жаба и 800 евро

Nov 30, 2017 15:26

Присказка. В общем, поменял я летом мобильную платформу. В послесимбиановую эпоху жил я вначале на винде, потом на андроиде, потом опять на винде, и жил бы, наверное, и дальше, но майкрософт похоронил всю свою линейку телефонов. Т.е. с начала 2017-го выпуск всех люмий полностью прекращен, а новые люмии, по слухам, появятся весной 2018-го и будут только флагманами, и будет на них обычная десятая винда для intel 64-bit. Т.е. ждите и готовьте от 1000$. Это как-то дорого, да и не нужен мне флагман. В общем, я пошел и взял два айфона SE - себе и жене. Шлём друг другу анимированные поцелуйчики, рисуем пальцем смски. Киллер-фича, я считаю. Серьёзно.

Но вот вопрос. Как, блин, под это чудо хоть что-то запрограммировать? Так просто, для себя. Тут начинается лес чудес для неподготовленного человека.



Сам эппл естественно предлагает истинно сектантский подход: надо купить мак, поставить на него xcode, написать программу на swift, купить лицензию разработчика, привязать телефон к маку через usb, отлаживаться на этом телефоне и симуляторах.

Поскольку минимально приемлемый для использования мак-мини стоит у нас новый 800 евро (а старьё б/у по 400евро), то я, естественно, считаю, что пошел бы эппл в жопу - за некоммерческий интерес к разработке программ под свой телефон я столько платить не готов. Лучше бы мне писать на винде на привычном C# (который c версии 7.2 стал просто бесподобен) и с богомерзкой неудобной макосью дел не иметь.

В общем, сел я думать, как быть.

Поиск показал, что теоретически писать на винде для айфона можно - для этого майкрософт купил Xamarin. Это специфическое семейство продуктов для кроссплатформенной разработки. И этот Xamarin продвигается вместе со студией. Я его раньше просто отключал при установке. Ну естественно, поставил, посмотрел. Облом. Писать код можно, компилировать можно, нельзя редактировать визуальную часть (storyboard) и нельзя подписывать код при компиляции. Также есть такой многообещающий продукт, как Xamarin Live Player - можно не подписывать код и вообще не подключать телефон к компу - просто нажимаешь F5 в студии и видишь запустившуюся программу на телефоне. Точнее - не видишь ))) Потому что этот продукт не работает вообще, сообщая разные ошибки ((

Тут я сел думать опять. Стало понятно, что без мака никуда, он нужен даже в простейших случаях при разработке на винде. Но жаба. Но нужен. Но жаба. Также узнал, что сейчас можно одну программу для одного телефона без лицензии разработчика писать. И на том спасибо.

Ладно, подумал я, есть же эмуляторы и хакинтош. Ха-ха-ха.

Сэкономлю ваше время. Запустить макось на неродном оборудовании действительно-таки можно. Но времени пришлось потратить много. Итак:
  1. Можно собрать хакинтош и запустить макось на нем.
  2. Можно запустить макось на VirtualBox.
  3. Можно запустить макось на VMWare.
Хакинтош. Путь для сильных духом. Придется очень много читать. На основной комп (Xeon/Nvidia/C222) я ставить хакинтош не хочу, а на моем втором компе (Pentium G4600/HD630/B250) завести его не получилось. Устанавливается успешно, но потом не стартует видеодрайвер. Видимо для следующей попытки придется тщательно подбирать комплектующие. Фейл.

VirtualBox 5.2.2. Тоже путь для подготовленных. Есть готовые образы на торрентах. Стартует успешно, но с кучей глюков, системный лог страшно читать. Сразу скажу, что разрешение экрана устанавливается командой «vboxmanage setextradata macos2 VBoxInternal2/EfiGraphicsResolution 1440x900», а не той, что в интернете на каждом углу написана. Для понимания, с чем придется иметь дело, можете глянуть в файл https://github.com/hfiref0x/VBoxHardenedLoader/blob/master/Binary/data/hidevm_efiahci.cmd Видеоускорения нет, куча глюков, и самое главное - система не видит айфон подсоединенный по usb. Опять фейл.

VMWare Workstation 14.0.0 Player. Завелось. Правда без ускорения видео. Пришлось отключить на винде компоненты «Hyper-V» и «Защищенный узел». Также пришлось пропатчить инсталляцию анлокером - www.insanelymac.com/forum/files/file/826-unlocker209-unofficialzip/ причем именно этой версией анлокера, потому что другие версии этого анлокера убивали usb. Есть готовые инсталляционные образы макоса на торрентах, а в конфигурацию виртуальной машины пришлось дописать только smc.version = "0", как и пишут во всех статьях. Самое интересное - есть сильное подозрение что это тайный официальный эмулятор макинтоша, сделанный с разрешения самого эппла. Потому что завелся тунец с AppleID! Безо всяких танцев с подбором серийных номеров железа! Уточню на всякий случай, что AppleID я пробовал два разных - один уже активированный на телефоне, он завелся. И второй, который был создан про запас и нигде больше не подключался - он не завелся.

Итог. Теперь, работая в студии на винде, простейшее приложение без проблем запускается на телефоне. Цель достигнута.

remote debug, брызги шампанского, c, разработка ПО, прогресс

Previous post Next post
Up