Gibt es einen technischen Grund, warum Sie keine iOS-Apps auf einem Linux-Computer entwickeln können?


23

Ich verstehe, warum Sie keine OS X-Apps auf einem Linux-Computer entwickeln können, aber gibt es einen guten technischen Grund, warum Sie keine iPhone- und iPad-Apps auf Linux entwickeln können? Warum ist es nicht möglich, iOS-Quellcode in eine ausführbare iOS-Datei zu kompilieren und in einem iOS-Simulator unter Linux auszuführen oder auf einem iOS-Entwicklungsgerät zu installieren?

Liegt es nur daran, dass die XCode-IDE eine Cocoa-Anwendung ist?

Sie können anscheinend Android-Apps auf jeder Plattform entwickeln. Ich verstehe nicht, warum das bei iOS nicht auch so ist.


29
Ich stelle mir vor, dass die Antwort auf diese Frage leider "Nein, Apple hat es gerade gesagt" lautet.
Jon Purdy

11
frage

1
Nebenbei bemerkt, können Sie "Mac Mini" Maschine bekommen. Es ist billig, ganz zu schweigen davon, dass es wirklich eine gute Maschine ist.
Chiron

2
@The Legend of 1982: Ich habe feine Maschine als Zeitmaschine falsch verstanden und einen Moment der gleichzeitigen jungenhaften Erregung und Verachtung von Apple erlebt.
Jon Purdy

@ Jon Purdy Nun Apple bietet "Time Machine" und "Time Capsule" :)
Chiron

Antworten:


17

Mac OS X kann nur vertraglich auf Apple Hardware ausgeführt werden. iOS benötigt das Cocoa-Framework und Zugriff auf einen Mac, um den Schlüsselbund zu signieren. Während Sie Objective-C unter Linux mit den OpenStep-Bibliotheken verwenden können, können Sie die von Ihnen entwickelten Anwendungen nicht auf iOS übertragen, da die richtigen Cocoa-API-Bibliotheken fehlen, und Sie können auf ein Gerät ohne Schlüsselbund mit einem vollständigen Entwickler übertragen Konto, um die App zu verkaufen oder sogar die Öffentlichkeit es herunterladen zu lassen, müssen Sie nach den Regeln von Apple spielen.


17
"Mac OS X kann nur legal auf Apple Hardware ausgeführt werden" - ich wäre sehr überrascht, wenn dies in einem vernünftigen Rechtssystem zutrifft. Ich weiß , dass es in Deutschland nicht stimmt, weil Microsoft versucht hat, den gleichen Trick zu zeigen, die Leute es ignorierten, Microsoft verklagten und verloren.
Jörg W Mittag

4
Ich werde es für mehr Präzision "vertraglich" ändern.
Welt Ingenieur

3
Bei einem Verstoß gegen die Vertragsbedingungen werden Ihnen lediglich die Support-Rechte entzogen. Apple möchte einen guten Kundenservice bieten, und der einfachste Weg, dies zu tun, besteht darin, den Raum einzuschränken, in dem Probleme auftreten können. Wenn Sie das Betriebssystem auf einer Hardware ausführen, die nicht von Apple stammt, sind Sie selbstständig.
Jon Purdy

@ JörgWMittag Wie hat Microsoft das versucht? Mir ist nicht bewusst, dass Microsoft überhaupt Hardware herstellt.
Nadir Sampaoli

4
@NadirSampaoli: In Deutschland verkauft Microsoft Windows-Lizenzen sehr günstig an PC- Hersteller , so dass diese Windows mit ihren PCs bündeln können, ohne die Kosten im Vergleich zu einem PC ohne Betriebssystem oder mit gebündeltem Linux zu erhöhen. Diese Lizenzen sollen auf den PCs vorinstalliert sein. Die PC-Hersteller erkannten jedoch, dass sie diese Lizenzen separat verkaufen konnten, mit einem enormen Gewinn im Vergleich zu dem, was sie für sie bezahlten, aber immer noch viel billiger als Microsoft. Microsoft verklagte mit der Begründung, dass diese Lizenzen nur mit den PCs dieser Hersteller verwendet werden könnten, aber verloren gingen.
Jörg W Mittag

17

Es gibt keinen besonderen technischen Grund, aber die von Apple bereitgestellten Entwicklertools laufen nur auf Macs, und ich sehe, dass sie es nicht eilig haben, dies zu ändern.

In Bezug auf Entwickler-Tools von Drittanbietern lehnt Apple diese Tools öffentlich ab. Angesichts des absoluten Vetorechts von Apple in Bezug auf das, was im App Store erhältlich ist, ist es keine gute Idee, signifikante Entwicklungszeit in die Erstellung / Verwendung dieser Tools zu investieren.

(Eines der Entwicklungstools - der iOS-Simulator - ist aus fundierten technischen Gründen sehr stark an MacOS X gebunden. AFAIK ist eigentlich eine dünne Hülle zwischen iOS und den sehr ähnlichen MacOS X-APIs, was auf einem anderen Betriebssystem unendlich schwieriger zu tun wäre Du müsstest von vorne anfangen und wahrscheinlich mit etwas so langsamem und schrecklichem enden wie dem Android-Emulator.


8

Es kommt darauf an, was Sie unter "technischer Vernunft" verstehen.

Genau genommen glaube ich nicht, dass es einen technischen Grund dafür gibt, dass iOS-Apps nicht unter Linux entwickelt werden konnten. Es würde eine Entität erfordern, sei es Apple oder eine Gruppe von unternehmungslustigen / talentierten Hackern, um eine Toolchain dafür zu erstellen (Compiler, vielleicht eine IDE, etwas, um es ans Telefon zu bringen).

Wenn Sie also mit "technischer Begründung" "etwas Besonderes am Macintosh meinen, das unmöglich ist und auf keiner anderen Plattform existieren kann", dann nein, ich glaube nicht, dass es das gibt. Es gibt zum Beispiel keinen speziellen Chip auf dem Macintosh, der dafür benötigt wird.

Wenn Sie mit "technischer Begründung" "etwas meinen, das mich heute daran hindert, es zu tun", dann ist das gesamte signierte Code-Bit unter Linux nicht vorhanden, und wenn Apple es nicht portiert, dann ist es das Ballspiel.


4

Ich denke , es sagt , sollten Sie entwickeln für iOS auf anderen Plattformen, kann man einfach nicht bauen Endanwendung auf sie.

In der akzeptierten Antwort wurde erklärt, warum Sie nicht außerhalb von OS X erstellen können, aber es gibt viele Entwicklungstools, mit denen Sie iOS-Apps auf anderen Plattformen schreiben können.

Einige der von mir verwendeten Entwicklungstools ermöglichen dies:

  • Qt Framework (C ++ und Qml): Anwendungen können unter Windows oder Linux geschrieben werden. Anschließend wird die iOS-Anwendung mit XCode unter OS X erstellt.

  • Unity3D (C #, UnityScript und Boo): Sie können unter Windows entwickeln und zum Erstellen eines iOS auf beiden Plattformen ein XCode-Projekt generieren. Dies ermöglicht auch eine weitere Integration in anderen Objective-C-Code.

  • Xamarin (C #): Sie können unter Windows (und meiner Meinung nach unter Linux) entwickeln und einen OS X-Computer als Build-Host verwenden.

  • Kivy (Python): Erzeugt auch XCode-Projekte.

Und Sie können viele weitere Projekte wie diese finden, insbesondere wenn Sie sich mit hybriden und mobilen Web-App-Frameworks wie Appcelerator beschäftigen.


0

Es gibt keinen technischen Grund, warum Sie keine iOS-Anwendungen unter Linux entwickeln könnten. Tatsächlich geschieht dies bereits unter Windows in Delphi XE. Dort können Sie Ihre iOS-Apps komplett in Windows entwickeln. Das Einzige, was letztendlich benötigt wird, ist, dass Ihre Apps signiert werden müssen. Dies ist nur auf einem Mac möglich.


0

Es gibt einen technischen Grund, warum Xcode die Entwicklung von iOS-Apps auf anderen Systemen nicht zulässt.

iOS ähnelt in vielerlei Hinsicht OS X. Viele der Frameworks sind identisch oder sehr ähnlich. Der iOS-Simulator nutzt dies, um eine sehr schnelle Testumgebung bereitzustellen. Wenn Xcode eine App kompiliert, die im Simulator ausgeführt werden soll, werden x86-Binärdateien erstellt, die mit Frameworks verknüpft sind, die sich hauptsächlich auf OS X-Frameworks beschränken. Am Ende steht ein Debugbuild zur Verfügung, der nativ auf Ihrem Mac ausgeführt wird und eine hervorragende Leistung bietet.

Wenn Sie sich Android ansehen, werden plattformunabhängige Apks erstellt, die dann in dem einen oder anderen Android-Emulator emuliert werden. Auf diesem Computer wird eine virtuelle Maschine ausgeführt, auf der der gesamte Android-Stack zum Debuggen ausgeführt wird. Es gibt Emulatoren, die schneller sind als andere, aber alle sind viel langsamer als der Simulator. Der Vorteil ist jedoch, dass sie plattformübergreifend sind.

Damit Apple iOS-Apps auf anderen Systemen erstellen kann, müssen sie entweder die Frameworks auf diese Betriebssysteme portieren, damit sie einen Simulator schreiben können, oder sie müssen einen Emulator erstellen. Beides wäre ein Teil der Arbeit, der einige Zeit in Anspruch nehmen würde, um neue Funktionen zu entwickeln.


0

Während Sie unter Linux keine Anwendungen für iOS signieren und diese somit über die akzeptierten Methoden verteilen können, können Sie unter Linux mit Theos (mit denselben APIs) entwickeln. Diese Toolchain wird von der Jailbreak-Community zur Entwicklung von Apps für iOS verwendet und ist plattformübergreifend. Wenn Ihr iOS-Gerät einen Jailbreak aufweist, können Sie die kompilierte Anwendung meines Erachtens über libimobiledevice auf Ihr Gerät übertragen, aber jemand kann mich korrigieren, wenn ich falsch liege.

Weitere Informationen: http://iphonedevwiki.net/index.php/Theos

Ich habe vor, dies am nächsten Tag oder so zu versuchen, und ich werde Updates bereitstellen.


1
Updates bitte!
Kyle Strand
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.