Разработка под iOS на Windows без компьютера Mac возможна?
Сложилась непростая ситуация. Вдруг понадобилось написать небольшое приложение под iOS, но не тут-то было. Загрузил Xamarin, установил необходимые компоненты и тут ступор, при открытии Main.storyboard моего проекта пишет мне:
The iOS Designer requires an active connection to the Mac server
Собственно говоря сам скриншот сообщения: Ну, соответственно если нажать ссылку Connect Mac Server , то в последующих окнах он просит IP-адрес или имя Mac-устройства: Понятное дело, что приложения под iOS не могут быть созданы без компилятора от Apple. Mac-компьютера у меня нет, поэтому вариант покупки и аренды отпадает. Как я могу скомпилировать приложение под iOS? Из устройств от Apple имеется iPad и iPhone — это как-то может помочь? Может быть есть какой-нибудь общедоступный Mac Server?
Отслеживать
Denis Bubnov
задан 9 фев 2017 в 20:36
Denis Bubnov Denis Bubnov
14k 13 13 золотых знаков 38 38 серебряных знаков 63 63 бронзовых знака
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Всё получится, нужно установить MacOS на виртуалку (у меня стоит под VM Ware Workstation Pro 12), там нужно установить и настроить XCode. Все тулы кроссплатформ разработки генерят XCode-проект, который уже в XCode нужно открывать, собирать, устанавливать на устройства и т.д.
Только вам еще придется оформить подписку Apple Developer ($100 в год), разобраться с регистрацией устройств и приложений, созданием профайлов и сертификатов на developer.apple.com — желательно чтобы кто-то помогал 🙂 Не стоит заблуждаться, что это придется сделать только в случае, если вы хотите публиковать на AppStore — это не так, без сертификата Apple Developer там чихнуть не сможете
Если $100 и так есть где пропить, тогда надо жестоко ломать всё — устройства и Xcode
Отслеживать
ответ дан 11 июн 2017 в 1:43
Eugene Bartosh Eugene Bartosh
2,066 10 10 серебряных знаков 28 28 бронзовых знаков
А какую версию системы вы установили? Нет случайно инструкции по установке? По поводу регистрации в Apple Developer — это ни к чему, проект будет без публикации для себя
11 июн 2017 в 6:36
устанавливал еще Yosemite, взял просто чей-то готовый образ на rutracker.ru — потом разумеется апгрейдил, сейчас она самая новая. А по поводу подписки на Apple Developer — вы заблуждаетесь, без сертификата разработчика вы там чихнуть не сможете, не говоря уже чтобы «собрать для себя» — это Apple, детка ))
Как сделать приложение для iOS без макбука
3570 05-02-20 Время чтения: 5 мин
Корпорация Apple регулярно радует свою многомиллионную армию поклонников очередными технологическими новинками, и мобильные устройства от «яблочного» производителя успешно реализуются по всему миру. Одной из главных особенностей устройств от Apple является собственная операционная система – iOS, причем для разных категорий товаров существуют свои адаптации этой ОС.
Благодаря популярности iPhone и других устройств американского гиганта, вырос спрос и на приложения, заточенные под них и iOS. Но в чем особенность механизма создания таких приложений, какие существуют ограничения и подводные камни?
Особенности разработки iOS приложений
Перед тем, как говорить о разработке программ под iOS, сразу оговоримся, что далее речь пойдет именно о нативных (родных) приложениях, позволяющих использовать весь функционал и производительность устройств Apple. Сравнительно недавно для написания кода успешно использовался язык программирования Objective-C, созданный еще в 80-х годах. Вместе с многими достоинствами (высокий уровень поддержки кода, полная совместимость с языком Swift, большая обучающая база и много справочной литературы) данный язык имеет и существенные недостатки, включая сложность освоения, сравнительно низкую производительность, низкий уровень читабельности кода.
Летом 2014 года компания Apple презентовала новый язык программирования Swift, который сейчас и можно назвать основным для написания программ под iOS. Этот язык также является объектно-ориентированным, может похвастаться повышенной безопасностью, поддержкой динамических библиотек, легкой читаемостью кода и отличной скоростью. Соответственно, для создания приложения под устройства Apple необходимо знать хотя бы один из этих двух языков. Кроме этого, необходимо понимать принципы оформления и размещения элементов программ, разбираться в последних тенденциях в мире мобильных разработок и уметь правильно продвигать созданный продукт. Жизненно необходимо и наличие Mac, без которого разрабатывать iOS-приложения крайне проблематично, о чем поговорим чуть позже.
Среда разработки
Огромную помощь в процессе создания приложений разработчикам оказывают среды разработки – Integrated Development Environmetn или просто IDE. Корпорация Apple в свое время выпустила довольно удобную, практичную и, что немаловажно, сравнительно простую в освоении IDE Xcode. Ее можно скачать из App Store, причем бесплатно. Разработчик получает прекрасный редактор с большим набором полезных инструментов. Результат трудов можно протестировать с помощью встроенного симулятора без необходимости установки приложения на то или иное устройство. При этом разработчик может собирать программу сразу на устройство с iOS.
В Xcode предусмотрен отладчик, позволяющий находить ошибки в верстке, всевозможные баги и устранять их. Swift Playground позволяет проверять на ошибки отдельные алгоритмы или даже отдельные строчки кода без необходимости создания всего приложения. Для работы с картами в данной IDE предусмотрена функция имитации геолокации с возможностью добавления городов и использования уже «вшитых». Отдельного внимания заслуживает приложение Interface Builder, интегрированное в Xcode. IB включает в себя немало полезных инструментов, упрощающих процесс создания графических интерфейсов и делающих верстку более наглядной. И это далеко не весь инструментарий Xcode, с которым работают разработчики.
Хакинтош или Mac?
Разрабатывать приложения для богатой линейки устройств под управлением iOS можно только на компьютерах от Apple с установленной macOS. На такие устройства можно установить IDE Xcode, тогда как на компьютеры с другими системами этого сделать невозможно. Поэтому всем тем, кто хочет создавать iOS-приложения, необходимо позаботиться о наличии MacBook в любых его вариациях. Однако продукция Apple стоит традиционно дорого и далеко не все разработчики, особенно новички, могут позволить себе подобный компьютер. Один из выходов в сложившейся ситуации – установка виртуальной машины на обычный ПК, которая будет имитировать работу macOS и позволит разрабатывать необходимые программы.
Еще одним популярным способом обхода «яблочной» политики относительно установки macOS только на свою продукцию является создание так называемого хакинтоша. Само название красноречиво говорит нам, что это «хакнутый» или взломанный вариант Макинтоша. То есть, хакинтошем может быть любой компьютер не от компании Apple, на котором установлена операционная система macOS. Однако создать свой хакинтош не так просто, поскольку это идет вразрез с правообладателем и требует от специалиста высокой квалификации и мастерства. Да, после вложения некоторой суммы денег, изучения многочисленных инструкций в сети и экспериментов можно создать свой хакинтош, но рассматривать его можно только в качестве временного заменителя оригинального Mac для знакомства с системой и процессом разработки программ.
Необходимо ли наличие устройства Apple?
При разработке приложений на iOS на Mac, виртуальной машине или хакинтоше с использованием IDE Xcode программисты имеют возможность тестировать свои разработки на симуляторе устройств. Данная среда разработки позволяет выбирать необходимое устройство из перечня продукции Apple, что довольно удобно. Благодаря этому можно обойтись даже без реального устройства, однако для большего комфорта и лучшей оценки результата трудов опытные мастера рекомендуют не ограничиваться лишь виртуальным симулятором и проверять работу приложений вживую. К тому же, в симуляторе существует целый ряд ограничений, включая отсутствие акселерометра и камеры, поэтому обойтись без реального iOS-устройства будет точно непросто.
В mobile-студии KitApp не только прекрасно знают обо всех особенностях разработки приложений для iOS, но и успешно применяют свои навыки в течение многих лет на практике, создавая приложения разного уровня сложности. Наши мастера постоянно совершенствуют свои знания и изучают новинки в индустрии, поэтому клиенты могут быть на все 100% уверены в том, что созданное у нас приложение будет полностью соответствовать всем современным вызовам и требованиям.
7 способов создания приложений для iPhone на Windows
Какое-то время назад я решил привести пару способов создания приложения для iPhone и iPad, доступных на Windows. Сейчас эта тема всё ещё актуальна. Так что я решил дополнить этот список и включить некоторые другие способы, появившиеся после написания первого сообщения, и те, которые всё ещё находятся в разработке, но уже привлекают, кажутся интересными. Обратите внимание на то, что официальных программ под Windows для разработки приложений на iPhone не существует (и они вряд ли когда-нибудь появятся).
На данной стадии если вы хотите выложить своё приложение в iPhone AppStore от Apple, то вам придётся компилировать его на официальном ПО для iPhone, которое доступно для Mac OS X, использовать Flash’s iPhone Packager, Airplay SDK, либо отправить кому-нибудь свой код для компилирования. Сейчас же, я знаю, есть одно «хакинтошское» решение, но я не буду о нём рассказывать, не только потому, что оно, возможно, нелегальное, но я видел того, кто попробовал так делать. и это превратилось в долгую мороку — на каждое обновление ОС и SDK уходили часы, когда они могли просто купить Mac Mini меньше чем за $700 и не мучиться.
Говорят, что есть способы разработки приложений для iPhone на Windows. Повторюсь, что никакого издания официального SDK для iOS не существует — и я более чем уверен, что не существует никаких официальных способов, несмотря на все маркетинговые речи, которые произносят некоторые продавцы. Если вы увидите, как какой-нибудь продавец утверждает, что их продукт — это официальный SDK для разработки приложений для iPhone на Windows, мой вам совет: держитесь от него подальше.
Я разделяю указанные здесь способы на те, с помощью которых уже были созданы приложения, доступные в продаже, и те, которые, на мой взгляд, особенно заслуживают внимания.
Данные альтернативы для Windows включают игровые движки, html/javascript решения для создания гибридных приложений, а также обычные программы для создания приложений для iPhone/iPad.
Способы создания приложений для iPhone на Windows
- Flash CS5.5 — является очень хорошим решением совместно с Flash iPhone Packager. Упаковщик для iOS позволяет компилировать приложения на платформе Windows. Если вы уже использовали Флэш, то вы являетесь обладателем новейших стандартов Apple. Он хорошо работает, однако не ждите, что игры с высокими техническими требованиями, а также Papervision на нём запустятся. Наличие компьютера с Mac не требуется. Кто-то спрашивал, возможно ли создание iOS флэш-приложений в среде, отличной от официальной среды Adobe. безусловно, вы можете компилировать приложения с помощью компилятора Flex и упаковывать их до тех пор, пока вы следуете рекомендациям ASME.
- Airplay SDK — Airplay SDK позволяет вам создавать игры и подписывать свои приложения на Windows. Отличное решение как для 2D, так и для 3D игр и приложений, благодаря бесплатному предложению от независимых разработчиков.
Оба этих варианта могут компилировать стандартный код iPhone прямо на вашей Windows. Большое количество приложений, доступных в AppStore, было создано с их помощью. - Unity 3D — игровой движок и редактор, использующий Boo и C# и работающий как на Windows, так и на Mac.
- Stonetrip S3D — игровой движок и редактор, использующий LUA и работающий на Windows.
Эти игровые движки позволяют вам создавать приложения на Windows, однако для их тестирования/компилирования вам потребуется Mac. - Appcelerator Titanium — Хорошее решение, имеющее довольно широкую и живую аудиторию. Приложения не требуют высокой производительности, так как они создаются с использованием html/javascript и могут быть скомпилированы как стандартные приложения и отсылаться в AppStore.
- Genuitec MobiOne — это создатель интерфейса, который использует фреймворк PhoneGap для обеспечения стандартной функциональности. Он работает только на Windows и базируется на HTML/Javascript.
Данные способы позволяют создавать приложения с помощью web-технологий (HTML/CSS/Javascript) и в последствии запускать их через Objective-C фреймворк, который отвечает на действия в UIWebView, тем самым предоставляя вам доступ к стандартной функциональности на iPhone. Эти фреймворки бесплатные. Для стандартного тестирования/компиляции потребуется Mac. - Dragonfire SDK — Интересный способ, позволяющий создавать приложения, использующие их собственные SDK на Windows. Далее вы отправляете им свой исходный код, который они компилируют, и вы скачиваете уже готовый файл iOS приложения. Вы загружаете свой код для компилирования на их сервер (при условии, что у вас стоит версия Ultimate). Я его упомянул, так как мне нравится его синтакс, и он довольно популярен, а также является хорошим упаковщиком с удачным симулятором на Windows.
Существует ещё пара других решений, которые либо ещё тестируются, либо являются платными без каких-либо trial-версий (или даже в некоторых случаях без скриншотов), либо просто ещё не вышли. Многие из них, по-видимому, являются упрощёнными версиями Dragonfly SDK, который позволяет разрабатывать iPhone приложения на Windows путём компилирования вашего исходного кода.. Airplay SDK, возможно, на данный момент является наиболее продвинутым «iOS ПО для Windows», доступным бесплатно.
Разработка приложений для iPhone на Windows уже реальна
Если вы действительно решили создавать приложения для iPhone на Windows и даже не хотите покупать Mac Mini, то советую вам использовать html/javascript программы, такие как PhoneGap/Appcelerator либо Airplay SDK, а затем найти кого-нибудь с Mac и попросить их вам помочь. Airplay SDK является единственным бесплатным решением для Windows для создания высококлассных игр на iPhone/iPad. Вы можете использовать Флэш-разработчик, но на данный момент у него имеются ограничения в качестве. Однако скоро выйдет новая версия.
Обновление: к сожалению, Airplay SDK был переименован в Marmalade SDK и больше не доступен бесплатно независимым разработчикам.
Краткое руководство по приложению «Привет, iOS»
Поддержка конструктора iOS была прекращена в Visual Studio 2019 версии 16.8 и Visual Studio 2019 для Mac версии 8.8. В Visual Studio 2019 версии 16.9 и Visual Studio для Mac версии 8.9 этот конструктор удален. Создавать пользовательские интерфейсы iOS рекомендуется непосредственно на Mac с помощью Xcode Interface Builder. Дополнительные сведения см. в статье Проектирование пользовательских интерфейсов с помощью Xcode.
Это руководство описывает создание приложения, которое преобразует введенный пользователем буквенно-цифровой телефонный номер в числовой телефонный номер и затем набирает его. Окончательный вариант приложения выглядит примерно так:
Требования
Для разработки на iOS с помощью Xamarin требуется следующее:
- Компьютер Mac под управлением macOS High Sierra 10.13 или последующей версии.
- Последняя версия Xcode и пакета SDK iOS из App Store.
Xamarin.iOS работает со следующими конфигурациями:
- Последняя версия Visual Studio для Mac, удовлетворяющая указанным выше требованиям.
Xamarin.iOS работает со следующими конфигурациями:
- Последняя версия Visual Studio 2019 или Visual Studio 2017 Community, Professional или Enterprise на базе Windows 10 или более поздней версии, связанная с узлом сборки Mac, удовлетворяющим указанным выше требованиям.
Пошаговое руководство по Visual Studio для Mac
Это пошаговое руководство описывает создание приложения Phoneword, которое преобразует буквенно-цифровой телефонный номер в числовой.
- Запустите Visual Studio для Mac из папки Applications (Приложения) или из Spotlight: На экране запуска нажмите кнопку Новый проект. , чтобы создать новое решение Xamarin.iOS:
- В диалоговом окне Новое решение выберите шаблон Приложение с одним представлением для > iOS>, чтобы выбрать C#. Нажмите кнопку Далее:
- Настройте приложение. Присвойте ему имя Phoneword_iOS и оставьте все остальные значения по умолчанию. Нажмите кнопку Далее:
- Оставьте имеющееся имя для проекта и решения. Выберите расположение проекта или оставьте значение по умолчанию:
- Нажмите кнопку Создать, чтобы создать Решение.
- Откройте файл Main.storyboard, дважды щелкнув его на Панели решения. Убедитесь, что вы открыли файл с помощью Designer Visual Studio iOS (щелкните правой кнопкой мыши раскадровки и выберите пункт Открыть с > iOS Designer). Это позволяет создавать пользовательский интерфейс визуально: Обратите внимание на то, что классы размера включены по умолчанию. Чтобы узнать о них подробнее, см. руководство по унифицированным раскадровкам.
- Откройте панель элементов, введите «метка» в поле поиска и перетащите элемент Метка в область конструктора (в центре):
Примечание Панель свойств или панель элементов можно открыть в любое время, перейдя к панели просмотра>.
using System.Text; using System; namespace Phoneword_iOS < public static class PhoneTranslator < public static string ToNumber(string raw) < if (string.IsNullOrWhiteSpace(raw)) < return ""; >else < raw = raw.ToUpperInvariant(); >var newNumber = new StringBuilder(); foreach (var c in raw) < if (" -0123456789".Contains(c)) < newNumber.Append(c); >else < var result = TranslateToNumber(c); if (result != null) < newNumber.Append(result); >> // otherwise we've skipped a non-numeric char > return newNumber.ToString(); > static bool Contains (this string keyString, char c) < return keyString.IndexOf(c) >= 0; > static int? TranslateToNumber(char c) < if ("ABC".Contains(c)) < return 2; >else if ("DEF".Contains(c)) < return 3; >else if ("GHI".Contains(c)) < return 4; >else if ("JKL".Contains(c)) < return 5; >else if ("MNO".Contains(c)) < return 6; >else if ("PQRS".Contains(c)) < return 7; >else if ("TUV".Contains(c)) < return 8; >else if ("WXYZ".Contains(c)) < return 9; >return null; > > >
Сохраните файл PhoneTranslator.cs и закройте его.
string translatedNumber = ""; TranslateButton.TouchUpInside += (object sender, EventArgs e) => < // Convert the phone number with text to a number // using PhoneTranslator.cs translatedNumber = PhoneTranslator.ToNumber( PhoneNumberText.Text); // Dismiss the keyboard if text field was tapped PhoneNumberText.ResignFirstResponder (); if (translatedNumber == "") < CallButton.SetTitle ("Call ", UIControlState.Normal); CallButton.Enabled = false; >else < CallButton.SetTitle ("Call " + translatedNumber, UIControlState.Normal); CallButton.Enabled = true; >>;
CallButton.TouchUpInside += (object sender, EventArgs e) => < // Use URL handler with tel: prefix to invoke Apple's Phone app. var url = new NSUrl ("tel:" + translatedNumber); // . otherwise show an alert dialog if (!UIApplication.SharedApplication.OpenUrl (url)) < var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert); alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null)); PresentViewController (alert, true, null); >>;
Примечание Сейчас, в связи с требованиями Apple, при создании кода для устройства или симулятора может потребоваться сертификат разработки или удостоверение подписывания. Чтобы настроить их, следуйте указаниям в руководстве по подготовке устройств.
Пошаговое руководство по Visual Studio
Это пошаговое руководство описывает создание приложения Phoneword, которое преобразует буквенно-цифровой телефонный номер в числовой.
В этом пошаговом руководстве используется Visual Studio Enterprise 2017 на виртуальной машине Windows 10. Ваша конфигурация может отличаться при условии соблюдения приведенных выше требований, но имейте в виду, что некоторые снимки экрана могут отличаться от вашей конфигурации.
Прежде чем продолжить работу с пошаговым руководством, вам нужно подключиться к компьютеру Mac из Visual Studio. Это вызвано тем, что Xamarin.iOS использует инструменты Apple при сборке и запуске приложений. Настройка описана в инструкциях из руководства по связыванию с компьютером Mac.
- Запустите Visual Studio из меню Пуск: Создайте решение Xamarin.iOS, выбрав Файл > Создать > проект. > Visual C# > iPhone & iPad > iOS App (Xamarin):В следующем диалоговом окне выберите шаблон Приложение с одним представлением и нажмите OK, чтобы создать проект:
- Убедитесь, что значок агента Mac Xamarin на панели инструментов отображается зеленым цветом. Если это не так, то есть отсутствует подключение к компьютеру сборки Mac, выполните инструкции из руководства по выбору конфигурации, чтобы настроить подключение.
- Откройте файл Main.storyboard в конструкторе iOS, дважды щелкнув его в обозревателе решений:
- Откройте вкладку Панель элементов, введите «метка» в поле поиска и перетащите элемент Метка в область конструктора (в центре):
- Захватите маркеры перетаскивания и растяните метку в стороны:
- Выбрав элемент Метка в области конструктора, используйте окна свойств, чтобы изменить свойство Текст элемента Метка на «Enter a Phoneword» (Введите слово-номер):
Примечание Вы можете открыть Свойства или Панель элементов в любое время. Для этого перейдите в меню Вид.
Важно! Убедитесь, что выбран шаблон класса, в значке которого указан C#. В противном случае ссылка на этот класс может быть невозможна.
using System.Text; using System; namespace Phoneword < public static class PhoneTranslator < public static string ToNumber(string raw) < if (string.IsNullOrWhiteSpace(raw)) < return ""; >else < raw = raw.ToUpperInvariant(); >var newNumber = new StringBuilder(); foreach (var c in raw) < if (" -0123456789".Contains(c)) < newNumber.Append(c); >else < var result = TranslateToNumber(c); if (result != null) < newNumber.Append(result); >> // otherwise we've skipped a non-numeric char > return newNumber.ToString(); > static bool Contains (this string keyString, char c) < return keyString.IndexOf(c) >= 0; > static int? TranslateToNumber(char c) < if ("ABC".Contains(c)) < return 2; >else if ("DEF".Contains(c)) < return 3; >else if ("GHI".Contains(c)) < return 4; >else if ("JKL".Contains(c)) < return 5; >else if ("MNO".Contains(c)) < return 6; >else if ("PQRS".Contains(c)) < return 7; >else if ("TUV".Contains(c)) < return 8; >else if ("WXYZ".Contains(c)) < return 9; >return null; > > >
Сохраните файл PhoneTranslator.cs и закройте его.
string translatedNumber = ""; TranslateButton.TouchUpInside += (object sender, EventArgs e) => < // Convert the phone number with text to a number // using PhoneTranslator.cs translatedNumber = PhoneTranslator.ToNumber(PhoneNumberText.Text); // Dismiss the keyboard if text field was tapped PhoneNumberText.ResignFirstResponder (); if (translatedNumber == "") < CallButton.SetTitle ("Call", UIControlState.Normal); CallButton.Enabled = false; >else < CallButton.SetTitle ("Call " + translatedNumber, UIControlState.Normal); CallButton.Enabled = true; >>;
CallButton.TouchUpInside += (object sender, EventArgs e) => < var url = new NSUrl ("tel:" + translatedNumber); // Use URL handler with tel: prefix to invoke Apple's Phone app, // otherwise show an alert dialog if (!UIApplication.SharedApplication.OpenUrl (url)) < var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert); alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null)); PresentViewController (alert, true, null); >>;
Поздравляем! Вы создали свое первое приложение Xamarin.iOS!
Пришло время закрепить и углубить приобретенные знания и навыки с помощью раздела Привет, iOS: теперь подробнее.
Связанные ссылки
- Значки приложения Xamarin и изображения при запуске (пример)
- Привет, iOS (пример)
- Рекомендации по работе с человеческим интерфейсом iOS
- Портал подготовки iOS