Создать приложение для iOS, не имея Mac? [закрыто]

99

Пожалуйста, поправьте меня, если я ошибаюсь.

Я новичок в мобильной разработке и хотел бы разработать приложение для отправки в магазин Apple.

Но меня сильно обескураживают цены на Mac, для которых я разрабатываю приложение.

Допустим, я точно знаю, что хочу и как это кодировать.

Если бы я должен был создать учетную запись разработчика и заплатить взнос - тогда одолжите у моих друзей Mac, напишите код и отправьте свой код в Apple. Это все, для чего мне нужен Mac? И тогда я смогу получить доступ ко всей статистике и т. Д. Через iTunes на моем компьютере с Windows?

Кто-нибудь может сказать мне, что я бред?

Cescy
источник
2
это может быть достигнуто, как вы говорите, но подумайте об этом: если вашему приложению потребуется какое-либо обновление, незначительная ошибка или изменения? каждый раз, когда вы просите друга об одолжении?
D-eptdeveloper
5
Вам нужен Mac для серьезной разработки под iOS. Период. И в конце концов, они не такие уж и дорогие. И не забудьте протестировать несколько устройств iOS - приложения, которые не были протестированы на доступном оборудовании, обычно имеют недостатки.
Eiko
1
Бредовая часть начинается со слов «Я знаю, как это кодировать» ... если вы кодируете себя (то есть не выполняете контракт с другими), вам потребуется много тестирования и отладки. Придумайте несколько недель, чтобы запустить проект, который стоит кому-нибудь показать. Отполировать его и сделать «пригодным для магазина» будет нелегкой работой. Я действительно могу думать только о самых бесполезных приложениях (например, «обертках веб-сайтов»), которые создаются за день на Mac, если вы уже являетесь опытным разработчиком iOS.
Eiko
В Linux можно создать набор инструментов iOS на основе GCC. Xcode не является компилятором - он необходим только для создания сертификатов для отправки вашего приложения в AppStore.
Парамагнитный круассан
2
Вы можете искать Hackintosh, который позволяет запускать Mac OS на процессорах Intel, но я считаю, что это незаконно.
Борж 01

Ответы:

32

Позвольте мне рассказать вам шаг за шагом, несколько лет назад я был в той же ситуации.

Итак, у нас есть две фазы

  1. Разработка приложений для iPhone / iPad (iOS)
  2. Разработка приложений для iPhone / iPad (iOS) и публикация в iTunes Store

1. Разработка приложений для iPhone / iPad (iOS)

Итак, если вы просто хотите разрабатывать приложения для iOS, вы не хотите ничего платить,

Вам просто понадобится Mac + XCode IDE

  1. Получите Mac Mini или Mac Machine
  2. Создать учетную запись разработчика на Apple бесплатно
  3. После входа в учетную запись разработчика вы можете загрузить файл .dmg Xcode IDE.
  4. Вот и все.

Теперь вы просто устанавливаете Xcode и начинаете разрабатывать приложения для iOS и тестировать / отлаживать с помощью Simulator ..

2. Разработка приложений для iPhone / iPad (iOS) и публикация в iTunes Store

за публикацию вашего приложения в магазине iTunes вам необходимо заплатить (например, 99 долларов в год).

Итак, для полной настройки iOS-разработки вам понадобится

  1. Получите Mac Mini или Mac Machine
  2. Создать учетную запись разработчика на Apple бесплатно
  3. После входа в учетную запись разработчика вы можете загрузить файл .dmg Xcode IDE.
  4. платить 99 долларов за публикацию приложений в iTunes
  5. создать свои сертификаты для разработки / распространения в учетной записи Apple
  6. скачать весь сертификат на компьютер Mac и установить в XCode с помощью инструмента Связка ключей
  7. Получите хотя бы одно устройство iOS
  8. Зарегистрируйте устройство в своей учетной записи Apple
  9. Теперь вы можете разработать приложение для iOS, протестировать его на реальном устройстве, а также опубликовать его в iTunes Store.
SwiftBoy
источник
Проверьте эти требования iOS для Xamarin developer.xamarin.com/guides/cross-platform/getting_started/…
Джайдер,
Но в вопросе конкретно говорится «без Mac?»…
PF4Public,
28

В Windows вы можете использовать Mac на виртуальной машине (это, вероятно, также работает в Linux, но я не тестировал). Виртуальная машина - это, по сути, программа, которую вы запускаете на своем компьютере, которая позволяет вам запускать одну ОС в окне внутри другой. Убедитесь, что на жестком диске есть не менее 60 ГБ свободного места. Виртуальный жесткий диск, который вы загрузите, изначально занимает 10 ГБ, но после установки всех необходимых программ для разработки приложений для iOS его размер может легко увеличиться до 50 ГБ (я рекомендую оставить запас в несколько ГБ на всякий случай).

Вот несколько подробных шагов по установке виртуальной машины Mac в Windows:

  1. Установите VirtualBox .

  2. Вы должны включить виртуализацию в BIOS. Чтобы открыть BIOS в Windows 10, вам нужно начать, удерживая Shiftклавишу, одновременно нажимая кнопку перезапуска в меню «Пуск». Затем вы получите синий экран с некоторыми опциями. Выберите «Устранение неполадок», затем «Дополнительные параметры», затем «Настройки прошивки UEFI», затем «Перезагрузить». Затем ваш компьютер перезагрузится и напрямую откроет BIOS. В более старых версиях Windows выключите компьютер в обычном режиме, удерживайте нажатой F2клавишу, снова запустите компьютер и не отпускайте, F2пока не войдете в BIOS. На некоторых компьютерах вам может потребоваться удерживать другую клавишу, чем F2.

  3. Теперь, когда вы находитесь в BIOS, вам нужно включить виртуализацию. Какой параметр вы должны изменить, зависит от того, какой компьютер вы используете. Это может отличаться даже между двумя компьютерами с одной и той же версией Windows. На моем компьютере вам нужно установить Intel Virtual Technologyво Configurationвкладке Enabled. На других компьютерах он может быть, например, в Security -> Virtualizationформате Advanced -> CPU Setup. Если вы не можете найти ни один из этих вариантов, поищите в Google . Не меняйте ничего в BIOS просто так наугад, иначе это может вызвать проблемы на вашем компьютере. Когда вы включили виртуализацию, сохраните изменения и выйдите из BIOS. Обычно это делается во вкладке.enable virtualization (the kind of computer you have)Exit

  4. Загрузите этот файл (у меня нет связи с человеком, который его загрузил, но я использовал его сам, поэтому уверен, что вирусов нет). Если ссылка не работает, оставьте комментарий, чтобы сообщить мне, и я попытаюсь загрузить файл в другое место. Пароль для открытия файла 7Z является stackoverflow.com. Этот файл 7Z содержит файл VMDK, который будет действовать как жесткий диск для виртуальной машины Mac. Извлеките этот файл VMDK. Если дисковое пространство является для вас проблемой, после извлечения файла VMDK вы можете удалить файл 7Z и, следовательно, сэкономить 7 ГБ.

  5. Откройте VirtualBox, который вы установили на шаге 1. На панели инструментов нажмите кнопку «Создать». Затем выберите имя для вашей виртуальной машины (имя неважно, я назвал его «Mac»). В поле «Тип» выберите «Mac OS X», а в «Версия» выберите «macOS 10.13 High Sierra (64 бит)» (версия Mac, которую вы установите на виртуальную машину, на самом деле Catalina, но VirtualBox не имеет такой опции. все же, и он отлично работает, если VirtualBox думает, что это High Sierra).

    Также неплохо (хотя и не обязательно) переместить файл VMDK, извлеченный на шаге 4, в папку, указанную в разделе «Папка компьютера» (на скриншоте выше это будет C:\Users\myname\VirtualBox VMs).

  6. Выберите объем памяти, который может использовать ваша виртуальная машина. Попытайтесь сбалансировать количество, потому что слишком мало памяти приведет к низкой производительности виртуальной машины, а слишком большой объем памяти приведет к тому, что вашей хост-системе (Windows) не хватит памяти, что приведет к виртуальной машине и / или другим программам, которые вы повторно запускается в Windows до сбоя. На компьютере с 4 ГБ доступной памяти 2 ГБ было хорошим количеством. Не волнуйтесь, если вы выберете неправильную сумму, вы сможете изменить ее, когда захотите (кроме случаев, когда виртуальная машина запущена).

  7. На шаге «Жесткий диск» выберите «Использовать существующий файл виртуального жесткого диска» и щелкните значок маленькой папки справа от раскрывающегося списка. Откроется новое окно. В этом новом окне нажмите кнопку «Добавить» в левом верхнем углу, чтобы открыть окно просмотра. Выберите файл VMDK, который вы загрузили и извлекли на шаге 4, затем нажмите «Выбрать».

    Когда вы закончите с этим, нажмите «Создать».

  8. Выберите виртуальную машину в списке в левой части окна и нажмите кнопку «Настройки» на панели инструментов. В System -> Processor выберите 2 CPU; и в Network -> Attached to выберите Bridged Adapter. Если позже вы поймете, что на шаге 6 вы выбрали объем памяти, который вызывает проблемы, вы можете изменить его в System -> Motherboard. Когда вы закончите изменять настройки, нажмите OK.

  9. Откройте командную строку ( C:\Windows\System32\cmd.exe). Выполните следующие команды там, заменив тем, "Your VM Name"что вы назвали своей виртуальной машиной на шаге 5 (например "Mac") (сохраните кавычки):

    cd "C:\Program Files\Oracle\VirtualBox\"
    VBoxManage.exe modifyvm "Your VM Name" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" C02L280HFMR7
    
  10. Теперь все готово для использования виртуальной машины. В VirtualBox нажмите кнопку «Пуск» и следуйте инструкциям по установке для Mac. После того, как вы установили Mac на виртуальную машину, вы можете разработать приложение для iOS, как если бы у вас был настоящий Mac.

Примечание. Если вы хотите сэкономить место на жестком диске, вы можете сжать файл VMDK, который вы извлекли на шаге 4 и использовали на шаге 7. Для этого щелкните его правой кнопкой мыши, выберите «Свойства», затем щелкните «Дополнительно» ... в правом нижнем углу и установите флажок «Сжимать содержимое для экономии места на диске». Это приведет к тому, что этот очень большой файл будет занимать меньше места на диске, но ничего не будет работать хуже. Я сделал это, и он уменьшил размер диска файла VMDK с 50 до 40 ГБ без потери данных.

Дональд Дак
источник
2
Вм работает нормально. Но на моей машине, которая является игровой, она работает очень медленно.
Руэл Рибейро
@ReuelRibeiro Вы можете проверить конфигурацию своей виртуальной машины, чтобы убедиться, что она оптимизирована для вашего компьютера. Вот полезная статья по этой теме: hanselman.com/blog/…
Technoguyfication
2
На шаге 9 мне пришлось добавить VBoxManage setextradata «Имя вашей виртуальной машины» «VBoxInternal / Devices / efi / 0 / Config / DmiSystemSerial» W1234567980, чтобы иметь возможность входить в систему с использованием моего Apple ID
Иклейман
1
Хотя это может сработать, последняя версия xcode несовместима с IOS 10.11 (El Captain), которая в настоящее время находится на Google Диске. У вас есть более поздняя версия MacOS?
CularBytes
1
@RahulShah Вы можете делать все, что могли, на настоящем Mac.
Дональд Дак
26

Обновление от 09/2017

Можно разработать приложение для iOS (и одновременно Android) с помощью React Native + Expo, не имея Mac. Вы также сможете запускать свое приложение iOS в приложении iOS Expo во время его разработки. (Вы даже можете опубликовать его для доступа других людей, но он будет работать только в приложении Expo). Вот страница Expo о том, как создать автономное приложение.

Шаги с этой страницы:

Один : установить exp, запустивnpm install -g exp

Два : Настройте app.json (где-то в этих строках):

{
   "expo": {
    "name": "Your App Name",
    "icon": "./path/to/your/app-icon.png",
    "version": "1.0.0",
    "slug": "your-app-slug",
    "sdkVersion": "17.0.0",
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourappname"
    },
    "android": {
      "package": "com.yourcompany.yourappname"
    }
   }
 }

Три : запустите expупаковщик сexp start

Четыре : беги exp build:androidили exp build:ios.

Вам будет предложено ввести некоторые данные. Для Android вы можете выбрать, нет 1) Let Expo handle the process!ли у вас хранилища ключей (или если вы не знаете, что это такое). Для iOS вам нужно будет ввести свои учетные данные разработчика Apple. Затем вы можете предоставить сертификат распространения или позволить expo обработать его.

Пятый : время от времени вам нужно будет вернуться и запустить exp build:statusкоманду, чтобы проверить, была ли ваша сборка завершена. По завершении вам будет предоставлена ​​прямая ссылка на файл .apkили .ipa.

Единственным недостатком этого подхода является то, что он не будет таким же родным, как написание iOS-приложения на Swift, и вам придется мириться с рядом проблем, с которыми вы можете столкнуться при разработке со слабо типизированными js, npm и его зависимостями - on-specific-version-of-some-other-library проблемы и другие вещи.

что бы то ни было
источник
Возможно ли это также с другими фреймворками, например Qt и JavaFXPorts?
Daniel Ziltener
@DanielZiltener Я тоже не знаком, но думаю, что ответ отрицательный.
wha7ever
13

Вы можете использовать Phonegap (Cordova) для разработки приложений iOS без Mac, но вам все равно понадобится Mac, чтобы отправить приложение в App Store. Мы разработали облачное приложение, которое также может публиковать ваше приложение без Mac https://www.wenz.io/ApplicationLoader . В настоящее время мы находимся в стадии бета-тестирования, и вы можете пользоваться сервисом бесплатно.

С уважением, Штеффен Венц

(Я создатель сайта)

Штеффен Венц
источник
1
Я использую загрузчик приложений Венца. Для этого я создал специальный Apple ID с разрешением только на загрузку. Поскольку ваш IPA должен быть подписан, он по-прежнему в безопасности, даже если ваш пароль просочился.
user1219721
есть ли способ создать файл IPA без Mac для отправки в ваши службы?
12 ромбов в сетке без углов
12

Краткий ответ: теоретически ДА, но это должен быть ваш ОЧЕНЬ ХОРОШИЙ друг, но, опять же, вы можете предпочесть купить подержанный mac-mini.

TL; DR: вам понадобится этот Mac очень долго, в зависимости от требований вашего приложения, ваших навыков разработки и вашей удачи с Apple. Например:

  1. Вам может потребоваться несколько дней, чтобы настроить Xcode и необходимые SDK и библиотеки.
  2. Получение этой учетной записи разработчика может занять некоторое время, иногда вы можете слишком долго ждать, даже чтобы ваш запрос был рассмотрен.
  3. Когда вы отправляете заявку в первый раз, вам придется подождать, возможно, до нескольких недель или даже месяцев, чтобы ваше приложение было рассмотрено.
  4. Каждый раз, когда ваше приложение отклоняется, вам нужно будет найти и исправить свои проблемы (без особой помощи со стороны Apple, за исключением того, что укажет на правило, которое вы нарушили), затем повторно отправьте свое приложение на проверку и снова подождите.
  5. Каждый раз, когда вы пытаетесь применить патч для уже развернутого приложения, вам нужно будет проверять свое приложение, и есть вероятность, что ваше ранее законное приложение теперь нарушает новые правила, поэтому вы повторно отправляете и ждете

Итак, по моему опыту, разработка приложения для iOS - очень длительная процедура, даже без учета фактического времени разработки кода. Можете ли вы одолжить Mac на такой срок?

ЯнникуЛар
источник
И вы, и другой парень многое прояснили для меня, поэтому я благодарю вас
Cescy
1
Пожалуйста. На мой взгляд, приложение iOS для неопытного разработчика - это долгий путь и большие обязательства. Вы можете начать с приложения для Android, которое сначала будет стоить вам 25 долларов (пожизненная лицензия на разработку).
yannicuLar
11

Обновление Intel XDK больше не доступно.

Вы можете использовать Intel XDK, с которым вы можете разрабатывать и публиковать приложение для iOS без Mac.

Щелкните здесь, чтобы узнать подробности.

Хемант Сингх Ратор
источник
10
Intel XDK скончался ... RIP
Nowdeen
4

Также, если вы хотите сэкономить, вам не нужно покупать Mac. Есть и другие способы сделать это:

1.) Вы можете использовать практически любую ОС для запуска последней версии MacOS на виртуальной машине (см. YouTube). Я использую этот метод очень давно без каких-либо проблем на Windows с VMWare.

2.) Хакинтош. Установите MacOS на свой ПК. У вас должны быть совместимые компоненты, но если они есть, это лучший способ, потому что вы устраняете задержки в виртуальной машине ... Я использую это сейчас. Отлично. На моем ноутбуке, но, пожалуйста, не говорите об этом Apple, потому что практически это незаконно

3.) Если вы делаете простые приложения с минимальным пользовательским интерфейсом, вы можете использовать Theos . Также с помощью Theos вы можете создавать твики для Cydia. Только одна проблема: кодовый знак. Если вы хотите опубликовать приложение в App Store, у вас все равно должна быть MacOS, но если вы хотите сделать приложение дома, вы можете использовать CydiaImpactor для подписи приложений с Apple ID.

Я использовал все эти способы, и все работает. По моей виртуальной машине - лучшее решение, если вы не хотите тратить много времени на установку Hackintosh.

Самуэль Тулач
источник
3

Большинство фреймворков, таких как React Native и Ionic, позволяют создавать на их сервере. Это означает, что они могут помочь вам скомпилировать и предоставить вам файл .ipa.

Проблема в том, что вам нужен Xcode или загрузчик приложений для отправки вашего приложения в Apple App Store Connect. Оба они доступны только в OSX. Чтобы преодолеть это решение, у вас есть 2 варианта, о которых я знаю

  1. Аренда Mac виртуально. http://www.macincloud.com
  2. Используйте веб-сайт, который поможет вам загрузить ваше приложение (у вас должен быть файл .ipa). http://www.connectuploader.com
Валехель
источник
2

Вы можете использовать Smartface для разработки своего приложения с помощью javascript и развертывания в магазинах напрямую, без Mac. Что они говорят ниже.

Благодаря модулю Cloud Build Smartface устраняет все хлопоты по развертыванию приложений. Вам не нужно беспокоиться об управлении сертификатами подписи кода и наличии Mac для подписи ваших приложений. Smartface Cloud может хранить все ваши сертификаты iOS и хранилища ключей Android в одном месте, а подписание и сборка полностью выполняются в облаке. Независимо от того, какую операционную систему вы используете, вы можете получить двоичные файлы, готовые к хранению (или корпоративному распространению). Smartface освобождает вас от привязки к Mac и позволяет использовать вашу любимую операционную систему для разработки.

https://www.smartface.io/smartface/

Tempeck
источник
1

По моему опыту, Ionic Pro ( https://ionicframework.com/pro ) может выполнять большую часть работы по разработке и публикации, но вам все равно понадобится Mac или Mac в облаке на следующих этапах:

  • создать файл сертификации .p12
  • загрузите файл .ipa в App Store

После создания файла сертификации вы можете загрузить его в Ionic Pro. Вы можете создавать файлы .ipa с соответствующими учетными данными в облаке. Но, к сожалению, я не нашел другого способа загрузить файл .ipa в App Store, только с помощью Application Loader с Mac.

Поэтому я решил использовать Mac с оплатой по мере использования в облачной учетной записи (вы платите только за минуты, в которые вы вошли в систему), поскольку время, которое я трачу на Mac, очень ограничено (несколько минут на публикацию приложения).

габорп
источник
-7

Платформа XAMARIN CROSS

Вы можете использовать Xamarin, кросс-платформу с IDE Visual Studio, и интегрировать в нее xamarin. Кодировать в xamarin и создавать приложения для ios с помощью кода C # очень просто.

Абхишек Патхак
источник
11
Да, но для компиляции нужен Mac.
Maarten