Я понимаю, почему вы не можете разрабатывать приложения для OS X на компьютере с Linux, но есть ли хорошая техническая причина, по которой вы не можете разрабатывать приложения для iPhone и iPad в Linux? Почему невозможно скомпилировать исходный код iOS в исполняемый файл iOS и запустить его в симуляторе iOS в Linux или установить на устройстве iOS для разработки?
Это просто потому, что XCode IDE является приложением Какао?
Кажется, вы можете разрабатывать приложения для Android на любой платформе. Я не понимаю, почему то же самое нельзя сказать о iOS.
Ответы:
Mac OS X может быть запущена только по контракту на Apple Hardware. iOS требует инфраструктуры Какао и иметь доступ к Mac для подписи цепочки для ключей. Хотя вы можете использовать Objective-C в Linux с использованием библиотек OpenStep, вы не можете перенести разрабатываемые вами приложения на iOS из-за отсутствия правильных библиотек API-интерфейсов Cocoa и в то же время вы можете отправить их на взломанное устройство без связывания ключей с полным разработчиком. аккаунт, чтобы продать указанное приложение или даже сделать его доступным для публичного скачивания, вы должны играть по правилам Apple.
источник
Нет особой технической причины, но инструменты разработчика, предоставляемые Apple, работают только на Mac, и я не вижу, чтобы они спешили это изменить.
Что касается сторонних инструментов разработчика, то Apple очень их не любит, и, учитывая абсолютное право Apple на то, что попадает в App Store, не стоит тратить много времени на их разработку / использование.
(Один из инструментов разработки - КСН Simulator - это очень сильно привязан к MacOS X для звука по техническим причинам AFAIK это на самом деле тонкая обертка между прошивкой и очень похожа MacOS X API, которые были бы бесконечно труднее сделать на других ОСА. Вам придется начинать все заново, и, скорее всего, вы получите что-то такое же медленное и ужасное, как эмулятор Android)
источник
Это зависит от того, что вы подразумеваете под «технической причиной»
Строго говоря, я не верю, что есть техническая причина, по которой iOS-приложения нельзя разрабатывать для Linux. Для этого потребуется какой-то объект, будь то Apple или группа предприимчивых / талантливых хакеров, чтобы создать для него цепочку инструментов (компиляторы, может быть, IDE, что-то, что можно получить по телефону).
Так что, если под «технической причиной» вы подразумеваете «что-то особенное в Macintosh, которое невозможно и не может существовать на другой платформе», то нет, я не верю, что это так. Например, на Macintosh нет специального чипа, который необходим для этого.
Если под «технической причиной» вы имеете в виду «что-то, что мешает мне сделать это сегодня», то да, весь бит подписанного кода не существует в Linux, и если Apple его не перенесет, тогда это игра с мячом.
источник
Я думаю, что следует сказать, что вы можете разрабатывать для 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.
источник
Нет никакой технической причины, по которой вы не сможете разрабатывать приложения ios для Linux. На самом деле это уже происходит в Windows в Delphi XE. Там вы можете разрабатывать свои приложения IOS полностью в Windows. В итоге нужно только, чтобы ваши приложения были подписаны. Это можно сделать только на Mac.
источник
Существует техническая причина, по которой Xcode не позволяет разрабатывать приложения для iOS на других системах.
iOS во многом похожа на OS X. Многие фреймворки идентичны или очень близки. Симулятор iOS использует это для обеспечения очень быстрой среды тестирования. Когда XCode компилирует приложение для запуска в симуляторе, он создает двоичные файлы x86, которые связываются с платформами, которые в основном работают с OS X. В итоге вы получаете отладочную сборку, которая работает на вашем Mac и имеет отличную производительность.
Если вы посмотрите на Android, он создает независимые от платформы apk, которые затем эмулируются в том или ином эмуляторе Android. Это запускает виртуальную машину, которая запускает весь стек Android для вас для отладки. Есть эмуляторы, которые быстрее других, но все они намного медленнее, чем симулятор. Преимущество в том, что они кроссплатформенные.
Чтобы Apple могла создавать приложения для iOS на других системах, им нужно было либо портировать фреймворки на эти ОС, чтобы они могли написать симулятор, либо им пришлось бы создать эмулятор. Любая из этих задач была бы частью работы, которая отняла бы время на создание новых функций.
источник
Хотя вы не можете подписывать приложения для iOS в Linux и, таким образом, распространять их с помощью принятых методов, вы можете разрабатывать (с теми же API) для Linux с использованием Theos. Это набор инструментов, используемый сообществом джейлбрейков для разработки приложений для iOS, и он кросс-платформенный. Если ваше iOS-устройство взломано, я полагаю, что вы сможете отправить скомпилированное приложение на ваше устройство через libimobiledevice, но кто-то может исправить меня, если я ошибаюсь.
Еще немного информации: http://iphonedevwiki.net/index.php/Theos
Я планирую попробовать на следующий день или около того, и я предоставлю обновления.
источник