Начинаете разработку приложений для iPhone в Linux? [закрыто]


529

Я слышал, что вам нужно приобрести Mac, если вы хотите разрабатывать приложения для iPhone. Это правда?

Можно ли разрабатывать приложения для iPhone с использованием Linux? Если да, что мне нужно и где я могу скачать необходимые инструменты?



2
кто-то может отредактировать этот s / Linux / unix, чтобы обобщить его?
Хороший человек

5
@GoodPerson Тогда вы бы размыли грань между OS X и другими ОС, о чем этот вопрос.
Мистер Листер

2
один из самых важных фрагментов информации, которые я когда-либо нашел. абсолютно в теме, я бы сказал ...
Марко Фаустинелли

Ответы:


303

Чтобы дать другой ответ, я использую OS X и XCode на виртуализированной (VMware) машине в Linux. CPU - это Core2Quad (Q8800), и он очень быстрый. Я нашел готовую виртуальную машину онлайн (я оставлю это вам). Разработка Xcode / iPhone работает отлично, также как и отладка через USB для самого телефона.

Это на самом деле меня очень удивило - но у меня вообще не было проблем.


11
Итак, используя ваш подход, вы можете подписать и распространить его в iTunes?
Eldelshell

43
Да, нет проблем. Вы используете XCode, подпись работает отлично, теперь у меня есть производственное приложение в магазине, отправленное с виртуальной машины. Я не буду называть это по понятным причинам.
Хаос

18
@ Chaos: Не могли бы вы опубликовать ссылки на то, что именно вы использовали для запуска вашей установки?
Гликан

4
Можно ли доверять готовой виртуальной машине? Я имею в виду встроенных программных
продуктов

2
Хорошо. Мое мнение по этому поводу. Разработав приложение, вы можете использовать этот сервис для публикации macincloud.com
Фабрицио Бертольо,

75

Ответ на этот вопрос действительно зависит от того, хотите ли вы разрабатывать приложения, которые затем распространяются через магазин iPhone. Если вы этого не сделаете и не возражаете против разработки для «взломанного» iPhone толпа - тогда это возможно для разработки под Linux.

Проверьте страницу этого главы для всестороннего (если немного сложного) руководства о том, что делать:

http://www.saurik.com/id/4


26

Кажется, это правда до сих пор. Единственный SDK, доступный от Apple, предназначен только для среды MacOS. Я расстроился из-за этого, но сейчас я собираюсь купить Mac, просто чтобы заняться разработкой для iPhone. Мне действительно не нравится то, что они делают, и я надеюсь, что хороший SDK выйдет для других сред, таких как Linux и Windows.

Препятствия в отношении SDK:

IPhone SDK и бесплатное программное обеспечение: не совпадают

Apple недавно выпустила комплект для разработки программного обеспечения (SDK) для iPhone, но если вы надеялись портировать или разработать оригинальное программное обеспечение с открытым исходным кодом, новость не очень хорошая. Условия подписания кода и неразглашения делают свободное ПО запретным.

Сам SDK можно загрузить бесплатно, с помощью которого вы можете писать программы и запускать их на программном симуляторе. Но для того, чтобы действительно выпустить программное обеспечение, которое вы написали, вы должны зарегистрироваться в программе для разработчиков iPhone - шаг, отдельный от загрузки SDK, и тот, который требует одобрения Apple.

Я думаю, что для них довольно элитарно думать, что только пользователи Macos достаточно хороши для написания программ для своего телефона, и тот факт, что вам нужно купить лицензию за 100 долларов, если вы хотите публиковать свои материалы, действительно усложняет программисту-хобби. Хотя, если это то, что вам нужно сделать, я планирую прыгать через их обручи; Я бы очень хотел, чтобы кое-что было разработано на моем iPhone.


9
Как было сказано ранее, я не думаю, что здесь виноват элитарность. XCode и все остальные инструменты разработки (за исключением элементов низкого уровня, таких как GCC) написаны на какао, как и все платформы iPhone. Сначала им нужно будет перенести все это на другие ОС. Это не маленькая задача.
Брэд Ларсон

24
Дайте мне знать, когда Microsoft выпустит Visual Studio для Linux и Mac ...
Стивен Дарлингтон

12
Дайте мне знать, когда Microsoft выпустит Visual Studio, Access, Frontpage, XNA, DirectX, Office (со всеми функциями), Movie Maker, Visio, IIS или Exchange для Mac / Linux.
Брок Вульф

97
Сообщите мне, когда Microsoft выступит против EULA для запуска Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS или Exchange в (Dar) Wine.
lfaraone

5
@MarceloMason Вид. Это код Visual Studio , а не полная IDE.
Стивен Дарлингтон

20

Там раньше проект , посвященный решению этого дефекта: iphone-DEV

Целью проекта iphone-dev является создание бесплатного, портативного, высококачественного инструментария для разработки Apple iPhone и других встроенных устройств на платформе ARM / Darwin.


4
Похоже, что проект не подвергается регулярной разработке или обслуживанию с сайта (например, вики-записи по созданию инструмента / переносимости относятся к февралю 2010 года).
Ely

4
@Г-н. F, действительно, он мертв.
Йохан Буле

13

Что касается альтернативной цепочки инструментов, сайт Saurik полезен, но для последних разработок прошивки он указывает на сборку самого iPhone и не указывает, что вам может потребоваться скопировать необходимые файлы прошивки iPhone в вашу среду Linux. Это не невозможно, но просто требует дополнительной работы, особенно для подписи кода (есть также открытые альтернативные решения).

Кроме того, взгляните на другие руководства (для той же цепочки инструментов), которые подходят к нему более методично.

Я бы по-прежнему предлагал сделать окончательную сборку, подписать код и упаковывать его в XCode (что может означать заимствование чьего-либо Mac) на случай, если у вас возникнут проблемы при отправке приложения в Apple. Использование альтернативной цепочки инструментов открывает (по крайней мере для Mac) возможность использовать другие среды разработки, кроме XCode, для разработки приложения и снова прибегать к XCode для развертывания и тестирования с помощью симулятора.

Конечно, если вы действительно получаете подписывание кода / генерацию сертификата из командной строки вне XCode, тогда вы можете установить сертификат на свой реальный iPhone и протестировать его там (установка приложения через iTunes с вашим сертификатом).


7

Единственный способ, которым я знаю о разработке под Linux для iPhone, - это установить Vmware и работать над тем, чтобы OS X работала на виртуальной машине. С учетом сказанного есть некоторые «юридические» проблемы в этом. Сообщается, что OS X Server может быть виртуализирован, но что касается истории разработки, о которой я не знаю.

Если вы действительно серьезны, это то, что я расследую.

Удачи.


4
Я попробовал вариант VMWare и, по крайней мере, на моем оборудовании (T5200 Core2, 2M RAM), он необычайно медленный. У моего друга был похожий опыт.
Парад

3
Я тоже. Медленно, медленно, медленно. Вы даже не хотите попробовать.
Носредна

5
@Parand Конечно, это будет медленно на 2М баране, я удивлен, что даже загружается!
Иешурун

2
Вы можете попробовать VirtualBox вместо VMware. VMWare слишком раздутый, на мой взгляд.
Хариндака

5

Вы можете использовать Tersus (с открытым исходным кодом), и он позволяет вам экспортировать приложение как проект Xcode.


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Так что он не сможет завершить и подписать собственное приложение для iOS
MarSoft

5

Возможно, вам удастся написать код на коробке Linux, который в конечном итоге окажется на iPhone или iPad, но в конечном итоге вам понадобится Mac, чтобы протестировать или развернуть код на iPhone или отправить его в магазин приложений. В конечном итоге вам нужен Mac, так что вы также можете выполнять работу на Mac со всеми инструментами, которые предоставляет Apple. Существуют альтернативы Xcode и Objective-C, такие как Monotouch, но они также используют инструменты Apple.

Вы можете с некоторой работой запустить OS X на виртуальной машине в Linux. Однако я должен отметить, что это нарушит лицензионное соглашение OSX, даже если вы купите копию OSX - так как она лицензирована для работы только на оборудовании Apple.

Извините, что сообщаю вам эту новость - экосистема вокруг iPhone / iPad очень жестко контролируется.

РЕДАКТИРОВАТЬ: Одним из основных исключений является написание веб-приложения для iPhone. Есть несколько отличных веб-приложений для iPhone, которые почти так же хороши, как и нативные приложения. Однако я истолковал ваш вопрос как о разработке собственных приложений. Веб-приложения, хотя пользователь может создать значок для их запуска, все еще являются гражданами второго сорта.


4
Хотя может быть допустимо запускать Lion в виртуализации, если вы используете Linux на Mac.
Cajunluke

4

Я успешно создавал приложения для iOS на Linux с помощью набора инструментов iOS clang от cjacker . По сути, он состоит из исходных инструментов clang и llvm из вашего дистрибутива linux, порта linux для компоновщика Apple и некоторых дополнительных инструментов, которые помогут упростить процесс сборки (например, преобразование проектов xcode в формат Makefile).

Установка требует нескольких шагов, но вы разработчик программного обеспечения, поэтому вы к этому привыкли. Я опубликовал обновленное руководство по Debian 7 (Wheezy) онлайн:

http://www.ninthavenue.com.au/how-to-build-an-ios-toolchain-for-linux-debian-7

В противном случае вы хотите пойти с общими инструкциями, которые немного старше:

http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

Удачи.


2

Есть основа под названием Rhodes .

Концепция основана на Ruby on Rails, и вы разрабатываете свое мобильное приложение на Ruby и HTML, и вы можете писать свой код в среде Linux. Затем вы можете создать учетную запись на Rhohub , где вы добавите код (через GitHub ), и он позволит вам скомпилировать его для iPhone, Blackberry, Android, Windows Mobile и Symbian, используя один и тот же код. Вам не нужно кодировать в Objective-C для iPhone или Java для Android и т. Д. Он выполняет преобразования для вас. Все, что вам нужно сделать, это придерживаться правил создания приложения для iPhone (или телефона, для которого вы хотите разработать), чтобы его можно было принять в iTunes (или на аналогичном рынке).

Это позволит вам также добавить приложение в iTunes.

Однако я не нашел никаких эмуляторов, а это значит, что для тестирования вашего приложения вам нужно поместить его на iPhone, что является миссией.

Я использую эту опцию, так как я хочу создавать приложения для всех телефонов, и я уже использую Ruby on Rails. Если вы просто хотите создать приложение для iPhone, тогда инвестируйте в Mac.

Надеюсь это поможет.


1

Вы правы, что не взломанные телефоны ограничены магазином приложений Apple, и Apple "имеет право" применять любое правило, это абсолютно несвободная территория. Однако при разработке не придется иметь дело с Apple вообще. Вы можете использовать, например, rsync, чтобы загрузить код на устройство и проверить его.


Этот проект преодолевает проблему, которую представил Стивен Кокс? «Вы никогда не получите одобрение вашего приложения Apple, если оно не разработано с использованием Xcode. Никогда. И если вы все же взломаете SDK для разработки под Linux, и Apple узнает:« Спасибо
пока верно

libmobiledevice на самом деле имеет приличный интерфейс для установки приложений без использования rsync / ssh на iDevice.
Дуайт Спенсер

1

В определенной степени, да, это возможно. Вы можете ввести код Objective-C и настроить свои проекты. Вы даже можете протестировать части кода на C и C ++ с помощью gcc.

Что вы не можете сделать:

  • Используйте Interface Builder для настройки вашего интерфейса, так как он предназначен только для Mac. (Не обязательно, но рекомендуется.)
  • Скомпилируйте код, который использует классы Apple Cocoa - их нет в Linux.
  • Тестовый код в симуляторе - для Linux его нет.
  • Скомпилируйте код для реальных устройств или для App Store - все это требует инструментов, которые Apple предоставляет только для OS X.

когда вы говорите, что классы не существуют, что вы имеете в виду? Мне нужны только заголовки, Apple все равно свяжет их для меня. Так работает подача заявок, AFAIK.
Янус Троелсен

1

Вы должны получить Mac для этого. Доступно несколько цепочек инструментов (например, win-chain), которые на самом деле позволяют писать и создавать приложения i Phone для Windows. Существует несколько связанных руководств по созданию кода Objective C в Windows. Но есть проблема, приложения, разработанные таким образом, будут работать только на сломанных джейл-телефонах.

Мы видели несколько взломов, чтобы преодолеть это и попасть в App Store, но, поскольку Apple продолжает обновлять SDK, цепочки инструментов нуждаются в регулярных обновлениях. Создавать его постоянно сложно. Если вы хотите получить готовое приложение, вы также можете получить помощь от arcapps, которая запускает приложения по разумной цене. разработка приложений для iphone


1

Я попытался портировать cocos2d-iphone на GNUstep, чтобы вы могли разработать игру на основе cocos2d. Однако для публикации вам нужен Mac. cocos2d-GNUstep .


0

Я бы порекомендовал приобрести Mac, потому что симулятор ios отлично подходит для тестирования на ранних стадиях приложения. Но я знаю небольшую компанию, с которой мы работаем, которая разрабатывает с использованием Unity, поэтому им не нужно загружать Mac. Таким образом, им нужен только один Mac для офиса, и это только для компиляции окончательной сборки. Это также означает, что он работает на Android, но это действительно зависит от того, какое у вас здание, потому что это игровой движок. Вы можете посмотреть в веб-приложения, используя такие платформы, как Sencha Touch Mobile

Unity: http://unity3d.com/ Sencha Touch: http://www.sencha.com/products/touch/


-5

Если вы цените свое время, купите Mac! Я не знаю достаточно о возможностях разработки Linux, чтобы предложить жизнеспособное решение, но кажется, что предлагаемые методы предполагают некоторую обходную работу. Если вы планируете серьезно писать и продавать приложения для iPhone, думаю, вы могли бы легко окупить стоимость Mac Mini или Macbook. :-)


4
Теперь, когда есть что-то вроде 50 000 приложений, не так-то просто сделать много. Дни салата, возможно, прошли.
Носредна

@Nosredna Я, например, хотел бы верить, что дни салата снова здесь. А если серьезно, ты прав.
Wyatt8740

Чувак, если мы ищем альтернативу для этого, это потому, что купить один не доступный вариант.
Роджер Рассел

-5

Вы никогда не получите одобрение вашего приложения Apple, если оно не разработано с использованием Xcode. Никогда. И если вы взломаете SDK для разработки под Linux, и Apple узнает, не удивляйтесь, когда вас обслужат. Я являюсь членом АЦП и программы разработчиков iPhone. Поверьте, Apple очень серьезно относится к этому.

Не рискуйте, купите Macbook или Mac mini (да, mini может запускать XCode - хотя и медленно - увеличьте объем оперативной памяти, если вы идете с мини). Кроме того, хотя я видел взломанный OS X для работы на VMware, я никогда не видел, чтобы кто-нибудь запускал Xcode на VM. Удачи. И я бы проверил EULA, прежде чем ты справишься с проблемой.

PS: после прочтения вышеизложенного, да, я согласен. Если вы взломали SDK и разрабатываете для Linux, по крайней мере, сделайте окончательную упаковку на Mac. И отправьте его через Mac. Apple не перебирает код построчно, поэтому я сомневаюсь, что они поймают это. Но человек, это много, если и работает. Будь веселым, хотя делать. :)


1
Новые мини отлично подходят для этой задачи. Я думаю, что они стоят около 600 долларов, и вы можете использовать практически любую мышь, клавиатуру и монитор. Обязательно откалибруйте монитор! XCode, кажется, работает очень хорошо на моем нерасширенном мини.
Носредна

7
Xcode отлично работает на виртуальной машине Mac OS X.
dave1010

2
Apple постоянно одобряет приложения Air SDK, не взаимодействуя с XCode. Вы можете сделать всю сборку на Linux / Windows.
j_mcnally
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.