Есть ли техническая причина, по которой вы не можете разрабатывать приложения для iOS на компьютере с Linux?


23

Я понимаю, почему вы не можете разрабатывать приложения для OS X на компьютере с Linux, но есть ли хорошая техническая причина, по которой вы не можете разрабатывать приложения для iPhone и iPad в Linux? Почему невозможно скомпилировать исходный код iOS в исполняемый файл iOS и запустить его в симуляторе iOS в Linux или установить на устройстве iOS для разработки?

Это просто потому, что XCode IDE является приложением Какао?

Кажется, вы можете разрабатывать приложения для Android на любой платформе. Я не понимаю, почему то же самое нельзя сказать о iOS.


29
Я полагаю, что ответ на этот вопрос, к сожалению, будет «нет, Apple только что сказал».
Джон Перди

11
вопрос закрыт для "богохульства";)
thorsten müller

1
На заметку, вы можете получить «Mac Mini». Это дешево, не говоря уже о том, что это действительно хорошая машина.
Хирон

2
@ Легенда 1982 года: я неправильно истолковал прекрасную машину как машину времени и испытал мгновенное мальчишеское возбуждение и презрение к Apple.
Джон Перди

@Jon Purdy Well Apple предлагает «Машину времени» и «Капсулу времени» :)
Chiron

Ответы:


17

Mac OS X может быть запущена только по контракту на Apple Hardware. iOS требует инфраструктуры Какао и иметь доступ к Mac для подписи цепочки для ключей. Хотя вы можете использовать Objective-C в Linux с использованием библиотек OpenStep, вы не можете перенести разрабатываемые вами приложения на iOS из-за отсутствия правильных библиотек API-интерфейсов Cocoa и в то же время вы можете отправить их на взломанное устройство без связывания ключей с полным разработчиком. аккаунт, чтобы продать указанное приложение или даже сделать его доступным для публичного скачивания, вы должны играть по правилам Apple.


17
«Mac OS X может быть легально запущена на Apple Hardware», - я был бы очень удивлен, если бы это было правдой в любой разумной правовой системе. Я точно знаю , что в Германии это не так, потому что Microsoft пыталась снять один и тот же трюк, люди проигнорировали его, Microsoft подала в суд и проиграла.
Йорг Миттаг

4
Я изменю это на «контракт» для большей точности.
Мировой инженер

3
Нарушение условий договора в основном просто лишает вас привилегий поддержки. Apple хочет обеспечить хорошее обслуживание клиентов, и самый простой способ сделать это - в первую очередь ограничить пространство, в котором все может пойти не так. Если вы работаете с их ОС не на оборудовании Apple, вы сами по себе.
Джон Перди

@ JörgWMittag Как Microsoft пыталась это сделать? Я не знаю, Microsoft вообще делает аппаратное обеспечение.
Надир Сампаоли

4
@NadirSampaoli: В Германии Microsoft продает лицензии на Windows очень дешево производителям ПК, так что они могут связывать Windows со своими ПК, не увеличивая при этом стоимость по сравнению с ПК без ОС или с Linux в комплекте. Предполагается, что эти лицензии предварительно установлены на ПК. Тем не менее, производители ПК поняли, что могут продавать эти лицензии отдельно, с огромной прибылью по сравнению с тем, что они заплатили за них, но все же намного дешевле, чем Microsoft. Microsoft подала в суд на том основании, что эти лицензии могут быть использованы только с ПК этих производителей, но потеряны.
Йорг Миттаг,

17

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

Что касается сторонних инструментов разработчика, то Apple очень их не любит, и, учитывая абсолютное право Apple на то, что попадает в App Store, не стоит тратить много времени на их разработку / использование.

(Один из инструментов разработки - КСН Simulator - это очень сильно привязан к MacOS X для звука по техническим причинам AFAIK это на самом деле тонкая обертка между прошивкой и очень похожа MacOS X API, которые были бы бесконечно труднее сделать на других ОСА. Вам придется начинать все заново, и, скорее всего, вы получите что-то такое же медленное и ужасное, как эмулятор Android)


8

Это зависит от того, что вы подразумеваете под «технической причиной»

Строго говоря, я не верю, что есть техническая причина, по которой iOS-приложения нельзя разрабатывать для Linux. Для этого потребуется какой-то объект, будь то Apple или группа предприимчивых / талантливых хакеров, чтобы создать для него цепочку инструментов (компиляторы, может быть, IDE, что-то, что можно получить по телефону).

Так что, если под «технической причиной» вы подразумеваете «что-то особенное в Macintosh, которое невозможно и не может существовать на другой платформе», то нет, я не верю, что это так. Например, на Macintosh нет специального чипа, который необходим для этого.

Если под «технической причиной» вы имеете в виду «что-то, что мешает мне сделать это сегодня», то да, весь бит подписанного кода не существует в Linux, и если Apple его не перенесет, тогда это игра с мячом.


4

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

В принятом ответе было объяснено, почему вы не можете строить вне OS X, но есть много инструментов разработки, которые позволяют вам писать приложения для iOS на других платформах.

Некоторые инструменты разработки, которые я использовал, позволяют это:

  • Qt Framework (C ++ и Qml): приложения могут быть написаны в Windows или Linux, после чего приложение iOS создается с XCode на OS X.

  • Unity3D (C #, UnityScript и Boo): вы можете разрабатывать в Windows, а для сборки iOS на любой платформе вы создаете проект XCode. Это также позволяет дальнейшую интеграцию с другим кодом Objective-C.

  • Xamarin (C #): Вы можете разрабатывать в Windows (и я верю в Linux) и использовать машину с OS X в качестве узла сборки.

  • Kivy (Python): также создает проекты XCode.

И вы можете найти еще много подобных проектов, особенно когда вы начнете смотреть на гибридные и мобильные веб-приложения, такие как Appcelerator.


0

Нет никакой технической причины, по которой вы не сможете разрабатывать приложения ios для Linux. На самом деле это уже происходит в Windows в Delphi XE. Там вы можете разрабатывать свои приложения IOS полностью в Windows. В итоге нужно только, чтобы ваши приложения были подписаны. Это можно сделать только на Mac.


0

Существует техническая причина, по которой Xcode не позволяет разрабатывать приложения для iOS на других системах.

iOS во многом похожа на OS X. Многие фреймворки идентичны или очень близки. Симулятор iOS использует это для обеспечения очень быстрой среды тестирования. Когда XCode компилирует приложение для запуска в симуляторе, он создает двоичные файлы x86, которые связываются с платформами, которые в основном работают с OS X. В итоге вы получаете отладочную сборку, которая работает на вашем Mac и имеет отличную производительность.

Если вы посмотрите на Android, он создает независимые от платформы apk, которые затем эмулируются в том или ином эмуляторе Android. Это запускает виртуальную машину, которая запускает весь стек Android для вас для отладки. Есть эмуляторы, которые быстрее других, но все они намного медленнее, чем симулятор. Преимущество в том, что они кроссплатформенные.

Чтобы Apple могла создавать приложения для iOS на других системах, им нужно было либо портировать фреймворки на эти ОС, чтобы они могли написать симулятор, либо им пришлось бы создать эмулятор. Любая из этих задач была бы частью работы, которая отняла бы время на создание новых функций.


0

Хотя вы не можете подписывать приложения для iOS в Linux и, таким образом, распространять их с помощью принятых методов, вы можете разрабатывать (с теми же API) для Linux с использованием Theos. Это набор инструментов, используемый сообществом джейлбрейков для разработки приложений для iOS, и он кросс-платформенный. Если ваше iOS-устройство взломано, я полагаю, что вы сможете отправить скомпилированное приложение на ваше устройство через libimobiledevice, но кто-то может исправить меня, если я ошибаюсь.

Еще немного информации: http://iphonedevwiki.net/index.php/Theos

Я планирую попробовать на следующий день или около того, и я предоставлю обновления.


1
Обновления пожалуйста!
Кайл Стрэнд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.