Початок розробки додатків iPhone у Linux? [зачинено]


529

Я чув, що вам потрібно придбати Mac, якщо ви хочете розробляти додатки для iPhone. Це правда?

Чи можливо розробляти додатки iPhone за допомогою Linux? Якщо так, що мені потрібно і де я завантажую необхідні інструменти?



2
може хтось редагувати цей s / Linux / unix, щоб узагальнити його?
Хороша людина

5
@GoodPerson Тоді ви будете розмивати межу між OS X та іншими ОС, про що йдеться у цьому питанні.
Містер Лістер

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

Відповіді:


303

Для надання різної відповіді я запускаю OS X і Xcode на віртуалізованому (VMware) машині в Linux. Процесор - це Core2Quad (Q8800), і він ідеально швидкий. Я знайшов вбудований VM в Інтернеті (я залишаю його вам знайти) Розробка Xcode / iPhone працює чудово, як і налагодження через USB до самого телефону.

Це насправді мене дуже здивувало - але у мене взагалі не було проблем.


11
Отже, використовуючи свій підхід, чи можете ви підписати та поширити його на iTunes?
Eldelshell

43
Так - ніяких проблем. Ви використовуєте XCode, підпис працює чудово, зараз у мене в магазині є додаток для виробництва, подане з VM. Я не буду називати це з зрозумілих причин.
Хаос

18
@Chaos: Чи можете ви, будь ласка, опублікувати посилання на те, що саме ви використовували для запуску налаштування?
Глікан

4
Чи можна довіряти VM? Я маю на увазі вбудованого винуватця програмного забезпечення, на
задньому плані

2
Добре. Моя думка з цього приводу. Після розробки програми ви можете користуватися цією послугою для публікації macincloud.com
Fabrizio Bertoglio

75

Відповідь на це дійсно залежить від того, ви хочете розробити додатки, які потім поширюються через магазин iPhone. Якщо ви цього не зробите і не заперечуєте проти розвитку натовпу iPhone "jailbroken" - тоді можна розвиватися з 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 або обмінюватися у (Dar) Wine.
lfaraone

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

20

Раніше існував проект, присвячений вирішенню цього дефекту: iphone-dev

Мета проекту iphone-dev - створити вільну, портативну, високоякісну ланцюжок інструментів для розробки для Apple iPhone та інших вбудованих пристроїв на базі платформи ARM / Darwin.


4
Схоже, проект не зазнає регулярної розробки або обслуговування на сайті (наприклад, записи Wiki щодо створення інструменту / портативності - з лютого 2010 року).
ely

4
@Містер. F, Дійсно, він мертвий.
Йохан Буле

13

Що стосується альтернативної ланцюга інструментів, сайт Саріка корисний, але для розробки останньої прошивки він вказує на побудову на самому iPhone і не вказує на те, що вам може знадобитися скопіювати необхідні файли мікропрограмного забезпечення iPhone у ваше середовище Linux. Це не неможливо, але вимагає додаткової роботи, особливо для підписання коду (є і відкриті альтернативні рішення).

Також перегляньте інші напрямні (для того ж ланцюжка інструментів), які підходять до нього більш методично.

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

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


7

Єдиним способом, яким я знаю, як займатися розробкою в Linux для iPhone, було б встановити Vmware та працювати над тим, щоб ОС X X працювала у віртуальній машині. З урахуванням сказаного, у цьому є деякі "юридичні" проблеми. Повідомляється, що OS X Server може бути віртуалізованим, але наскільки це історія розвитку, я не знаю.

Якщо ви справді серйозні, це те, що я розслідував би.

Удачі.


4
Я спробував варіант VMWare і, принаймні, на моєму апаратному забезпеченні (T5200 Core2, 2M таран), це неприпустимо повільно. У мого друга був подібний досвід.
Паранд

3
Я також. Повільно, повільно, повільно. Ви навіть не хочете спробувати.
Nosredna

5
@Parand Звичайно, це буде повільно на 2M барана, я здивований, що це навіть чоботи!
Єшурун

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 дуже жорстко контролюється.

EDIT: Одним з головних винятків є написання веб-програми для 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

Є рамка під назвою Родос .

Концепція заснована на 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 - вони не існують в Linux.
  • Тестовий код у Simulator - для Linux це не існує.
  • Складіть код для реальних пристроїв або для App Store - все це вимагає інструментів, які Apple надає лише для ОС X.

коли ти кажеш, що класів не існує, що ти маєш на увазі? Мені потрібні лише заголовки, Apple все одно зв’яже це для мене. Ось так працює подання додатків, AFAIK.
Янус Троельсен

1

Вам потрібно отримати Mac для цього. Існує кілька ланцюжків інструментів (наприклад, виграш-ланцюжок), які насправді дозволяють писати та створювати додатки i Phone на Windows. Існує декілька пов'язаних підручників зі створення коду Objective C для Windows. Але є проблема, розроблені таким чином додатки працюватимуть лише на розірваних в'язницях i телефонах.

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


1

Я зробив спробу перенести cocos2d-iphone на GNUstep, щоб ви могли розробляти гру на основі cocos2d. Однак для публікації вам потрібен mac. cocos2d-GNUstep .


0

Я рекомендую придбати mac, оскільки симулятор ios дивовижний для тестування на ранніх стадіях програми. Але я знаю про невелику компанію, з якою ми працюємо, розвивається за допомогою Unity, тому їм не потрібне навантаження маків. Таким чином, їм потрібен лише один мак для офісу, і це просто для складання остаточної збірки. Це також означає, що він працює на android, але це дійсно залежить від того, яка ваша будівля, тому що це ігровий движок. Ви можете заглянути в веб-додатки, використовуючи рамки, такі як Sencha Touch Mobile

Єдність: 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 (так, міні можуть запускати Xcode - хоча і повільно - збільшуйте оперативну пам’ять, якщо ви йдете з міні). Крім того, хоча я бачив, як OS X зламався для роботи на VMware, я ніколи не бачив, щоб хтось запускав Xcode на VM. Тож удачі. І я би перевірив EULA, перш ніж переживати проблеми.

PS: Після прочитання вищесказаного, так, я згоден. Якщо ви зламаєте SDK і розробляєте в Linux, принаймні зробіть остаточну упаковку на Mac. І надішліть його через Mac. Apple не перебігає кодовий рядок за рядком, тому я сумніваюся, що вони це впіймають. Але людино, це дуже багато роботи і роботи. Будь весело робити, хоча. :)


1
Нові міні є відмінним завданням. Я думаю, що вони коштують близько 600 доларів, і ви можете використовувати майже будь-яку мишу, клавіатуру та монітор. Обов’язково калібруйте монітор! XCode, здається, працює досить добре на моєму нерозширеному міні.
Nosredna

7
У віртуальній машині Mac OS X Xcode чудово працює.
dave1010

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