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.
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle