Чи є технічна причина, чому ви не можете розробити програми 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 Ну Apple пропонує "Машина часу" та "Капсула часу" :)
Chiron

Відповіді:


17

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


17
"Mac OS X може легально працювати лише на апаратному забезпеченні Apple" - я був би дуже здивований, якби це було правдою в будь-якій нормальній правовій системі. Я знаю , за те , що це НЕ правда , в Німеччині, тому що Microsoft намагалася тягнути ж трюк, люди ігнорували його, Microsoft подала в суд, і програв.
Йорг W Міттаг

4
Я заміню це на "договірне" для більшої точності.
Всесвітній інженер

3
Порушення умов договору в основному лише позбавляє вас пільг підтримки. Apple хоче надати хороше обслуговування клієнтів, і найпростіший спосіб зробити це - обмежити в першу чергу простір, в якому все може піти не так. Якщо ви працюєте з їх ОС на апараті, що не належить Apple, ви самостійно.
Джон Перді

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

4
@NadirSampaoli: У Німеччині Microsoft продає ліцензії Windows дуже дешево для будівельників ПК, щоб вони могли комплектувати Windows зі своїми ПК, не збільшуючи занадто великих витрат у порівнянні з ПК без ОС або з вбудованим Linux. Ці наміри полягають у тому, що ці ліцензії попередньо встановлені на ПК. Однак, будівельники ПК зрозуміли, що вони можуть продавати ці ліцензії окремо, з величезним прибутком порівняно з тим, що вони їм платили, але все ж набагато дешевше, ніж Microsoft. Корпорація Майкрософт подала позов на тій підставі, що ці ліцензії можна було використовувати лише на ПК від цих будівельників, але втрачені.
Йорг W Міттаг

17

Немає конкретних технічних причин, але інструменти для розробників Apple забезпечують запуск лише на Macs, і я не бачу, щоб вони не поспішали змінювати це.

Що стосується інструментів сторонніх розробників, Apple дуже публічно не любить їх, і враховуючи абсолютну право вето Apple на те, що потрапляє в App Store, це не чудова ідея вкладати будь-який значний час у розробку / використання їх.

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


8

Це залежить від того, що ви маєте на увазі під "технічною причиною"

Власне кажучи, я не вважаю, що є технічна причина того, що iOS Apps не вдалося розробити в Linux. Було б потрібно, щоб якась організація, будь то Apple або група підприємливих / талановитих хакерів, створила для цього інструментальну ланцюжок (компілятори, можливо IDE, щось, щоб отримати це по телефону).

Тож якщо під "технічною причиною" ви маєте на увазі "щось особливе про Macintosh, що неможливо і не могло існувати на іншій платформі", то ні, я не вірю, що існує. Наприклад, для Macintosh не потрібна спеціальна мікросхема, яка потрібна для цього.

Якщо під "технічною причиною" ви маєте на увазі "щось, що заважає мені зробити це сьогодні", то так, весь підписаний біт коду не існує в Linux, і якщо Apple не перенесе його, то це гра з м'ячем.


4

Я думаю, що слід сказати, що ви можете розробляти для iOS на інших платформах, ви просто не можете будувати на них кінцеві програми .

У прийнятій відповіді було пояснено, чому ви не можете побудувати поза ОС 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 у вікнах. Зрештою, потрібно лише підписати ваші програми. Це можна зробити лише на mac.


0

Існує технічна причина, що Xcode не дозволить розробляти додатки для iOS в інших системах.

iOS багато в чому схожий на OS X. Багато фреймворків ідентичні або дуже близькі. IOS Simulator використовує це для забезпечення дуже швидкого тестування. Коли Xcode компілює додаток для запуску в тренажері, він створює x86 бінарні файли, які посилаються на рамки, які в основному стикаються з рамками OS X. У вас з'явилася збірка налагоджень, яка працює на вашому Mac, яка має велику продуктивність.

Якщо ви подивитеся на Android, він створює незалежні додатки від платформи, які потім імітуються в одному або іншому емуляторі 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.