Starten der iPhone App-Entwicklung unter Linux? [geschlossen]

529

Ich habe gehört, dass Sie einen Mac benötigen, wenn Sie iPhone-Apps entwickeln möchten. Ist das wahr?

Ist es möglich, iPhone Apps unter Linux zu entwickeln? Wenn ja, was brauche ich und wo lade ich die erforderlichen Tools herunter?

Javac
quelle
2
Kann jemand dieses s / Linux / Unix bearbeiten, um es zu verallgemeinern?
Gute Person
5
@GoodPerson Dann würden Sie die Grenze zwischen OS X und anderen Betriebssystemen verwischen, worum es bei dieser Frage geht.
Herr Lister
2
Eine der wichtigsten Informationen, die ich je gefunden habe. absolut themenbezogen, würde ich sagen ...
Marco Faustinelli
Tolles Tutorial 2017 von Andy Smith
sondra.kinsey

Antworten:

303

Um eine unterschiedliche Antwort zu erhalten, führe ich OS X und Xcode auf einem virtualisierten (VMware) Computer unter Linux aus. Die CPU ist ein Core2Quad (Q8800) und sehr schnell. Ich habe eine vorgefertigte VM online gefunden (ich überlasse es Ihnen, sie zu finden). Die Xcode / iPhone-Entwicklung funktioniert einwandfrei, ebenso wie das Debuggen über USB auf dem Telefon.

Es hat mich wirklich sehr überrascht - aber ich hatte überhaupt keine Probleme.

Chaos
quelle
11
Können Sie es also mit Ihrem Ansatz signieren und auf iTunes verteilen?
Eldelshell
43
Ja - keine Probleme. Sie verwenden XCode, die Signierung funktioniert einwandfrei. Ich habe jetzt eine Produktions-App im Store, die von der VM gesendet wurde. Ich werde es aus offensichtlichen Gründen nicht nennen.
Chaos
18
@Chaos: Könnten Sie bitte Links zu dem posten, was genau Sie verwendet haben, um Ihr Setup zum Laufen zu bringen?
Glycan
4
Könnte einer vorgefertigten VM vertraut werden? Ich meine eingebettete Schuldige Software, Hintertüren ...
DummyBeginner
2
OK. Meine Meinung dazu. Sobald Sie die App entwickelt haben, können Sie diesen Service verwenden, um macincloud.com
Fabrizio Bertoglio
75

Die Antwort darauf hängt wirklich davon ab, ob Sie Apps entwickeln möchten, die dann über den iPhone Store verteilt werden. Wenn Sie dies nicht tun und es Ihnen nichts ausmacht, für die iPhone-Masse mit "Jailbreak" zu entwickeln, können Sie unter Linux entwickeln.

Auf der Seite dieses Jungen finden Sie eine umfassende (wenn auch etwas komplexe) Anleitung, was zu tun ist:

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

GodEater
quelle
26

Bisher scheint es wahr zu sein. Das einzige von Apple verfügbare SDK zielt nur auf die MacOS-Umgebung ab. Ich war darüber verärgert, aber ich möchte jetzt einen Mac kaufen, nur um das iPhone zu entwickeln. Ich mag es wirklich nicht, was sie tun, und ich hoffe, dass ein gutes SDK für andere Umgebungen wie Linux und Windows herauskommt.

Hindernisse bezüglich des SDK:

Das iPhone SDK und freie Software: kein Match

Apple hat kürzlich ein Software Development Kit (SDK) für das iPhone veröffentlicht. Wenn Sie jedoch gehofft haben, Original-Open-Source-Software damit zu portieren oder zu entwickeln, sind die Nachrichten nicht gut. Codesignatur und Geheimhaltungsbedingungen machen freie Software zu einem No-Go.

Das SDK selbst ist ein kostenloser Download, mit dem Sie Programme schreiben und auf einem Software-Simulator ausführen können. Um die von Ihnen geschriebene Software tatsächlich freizugeben, müssen Sie sich beim iPhone Developer Program anmelden - ein Schritt, der vom Herunterladen des SDK getrennt ist und der von Apple genehmigt werden muss.

Ich denke, es ist ziemlich elitär für sie zu glauben, dass nur Macos-Benutzer gut genug sind, um Programme für ihr Telefon zu schreiben, und die Tatsache, dass Sie eine 100-Dollar-Lizenz kaufen müssen, wenn Sie Ihre Inhalte veröffentlichen möchten, macht es für den Hobby-Programmierer wirklich schwieriger. Wenn Sie das tun müssen, habe ich vor, durch ihre Reifen zu springen. Ich würde wirklich gerne ein paar Sachen auf meinem iPhone entwickeln lassen.

stephenbayer
quelle
9
Wie bereits gesagt, glaube ich nicht, dass hier der Elitismus schuld ist. XCode und alle anderen Entwicklungstools (mit Ausnahme von Elementen auf niedriger Ebene wie GCC) sowie alle iPhone-Frameworks sind in Cocoa geschrieben. Sie müssten dies alles zuerst auf andere Betriebssysteme portieren. Das ist keine kleine Aufgabe.
Brad Larson
24
Lassen Sie mich wissen, wenn Microsoft Visual Studio für Linux und Mac veröffentlicht ...
Stephen Darlington
12
Lassen Sie mich wissen, wenn Microsoft Visual Studio, Access, Frontpage, XNA, DirectX, Office (mit allen Funktionen), Movie Maker, Visio, IIS oder Exchange für Mac / Linux veröffentlicht.
Brock Woolf
97
Lassen Sie mich wissen, wenn Microsoft es gegen die EULA schafft, Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS oder Exchange in (Dar) Wine auszuführen.
lfaraone
5
@MarceloMason Art von. Es ist Visual Studio Code , nicht die vollständige IDE.
Stephen Darlington
20

Es verwendet zu sein , ein Projekt , diesen Mangel gewidmet zu lösen: iphone-dev

Ziel des iphone-dev-Projekts ist es, eine kostenlose, tragbare und qualitativ hochwertige Toolchain zu erstellen, die die Entwicklung für das Apple iPhone und andere eingebettete Geräte auf der Basis der ARM / Darwin-Plattform ermöglicht.

Johan Boulé
quelle
4
Das Projekt wird anscheinend nicht regelmäßig von der Site aus entwickelt oder gewartet (z. B. stammen die Wiki-Einträge zum Erstellen des Tools / der Portabilität ab Februar 2010).
ely
4
@Herr. F: In der Tat ist es tot.
Johan Boulé
13

In Bezug auf die alternative Toolkette ist die Website von Saurik nützlich, aber für die neueste Firmware-Entwicklung gibt er an, auf dem iPhone selbst aufzubauen, und gibt nicht an, dass Sie möglicherweise die erforderlichen iPhone-Firmware-Dateien in Ihre Linux-Umgebung kopieren müssen. Es ist nicht unmöglich, sondern erfordert nur zusätzliche Arbeit, insbesondere zum Signieren des Codes (es gibt auch offene alternative Lösungen).

Schauen Sie sich auch andere Anleitungen (für dieselbe Werkzeugkette) an, die methodischer vorgehen.

Ich würde vorschlagen, die endgültige Erstellung und Signierung und Verpackung des Codes in XCode durchzuführen (was bedeuten kann, dass Sie sich einen Mac ausleihen), falls Sie beim Einreichen der Anwendung bei Apple auf Probleme stoßen. Die Verwendung der alternativen Toolkette eröffnet (zumindest auf dem Mac) die Möglichkeit, andere IDEs als XCode für die Entwicklung der Anwendung zu verwenden und für die Bereitstellung und das Testen mit dem Simulator erneut auf XCode zurückzugreifen.

Wenn die Codesignatur / Zertifikatserstellung über die Befehlszeile außerhalb von XCode funktioniert, können Sie natürlich ein Zertifikat auf Ihrem tatsächlichen iPhone installieren und dort testen (Installation der App über iTunes mit Ihrem Zertifikat).

dljava
quelle
7

Die einzige Möglichkeit, die Entwicklung unter Linux für das iPhone durchzuführen, besteht darin, VMware zu installieren und daran zu arbeiten, OS X in einer virtuellen Maschine zum Laufen zu bringen. Trotzdem gibt es dabei einige "rechtliche" Bedenken. Es wird berichtet, dass OS X Server virtualisiert werden kann, aber was die Entwicklungsgeschichte betrifft, weiß ich nicht.

Wenn Sie es wirklich ernst meinen, würde ich das untersuchen.

Viel Glück.

Keith Elder
quelle
4
Ich habe die VMWare-Option ausprobiert und zumindest auf meiner Hardware (T5200 Core2, 2M RAM) ist sie ungewöhnlich langsam. Mein Freund hatte eine ähnliche Erfahrung.
Parand
3
Ich auch. Langsam, langsam, langsam. Du willst es nicht einmal versuchen.
Nosredna
5
@Parand Natürlich wird es auf 2M RAM langsam, ich bin überrascht, dass es sogar bootet!
Jeshurun
2
Möglicherweise möchten Sie VirtualBox anstelle von VMware ausprobieren. VMWare ist meiner Meinung nach zu aufgebläht.
Harindaka
5

Sie können Tersus (Open Source) verwenden und die App als Xcode-Projekt exportieren.

Ofer Brandes
quelle
Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Es wird also nicht möglich sein, eine native iOS-App zu erstellen und zu signieren
MarSoft
5

Möglicherweise können Sie Code auf einer Linux-Box schreiben, die sich irgendwann auf einem iPhone oder iPad befindet. Letztendlich benötigen Sie jedoch einen Mac, um den Code zu testen oder auf dem iPhone bereitzustellen oder an den App Store zu senden. Letztendlich benötigen Sie also einen Mac, sodass Sie die Arbeit auch auf dem Mac mit allen von Apple bereitgestellten Tools erledigen können. Es gibt Alternativen zu Xcode & Objective-C wie Monotouch - aber diese verwenden auch die Apple-Tools.

Mit etwas Arbeit können Sie OS X in einer VM unter Linux ausführen. Ich möchte jedoch darauf hinweisen, dass dies die OSX-Lizenzvereinbarung verletzt, selbst wenn Sie die Kopie von OSX kaufen - da diese nur für die Ausführung auf Apple-Hardware lizenziert ist.

Es tut uns leid, Ihnen diese Neuigkeiten zukommen zu lassen - das Ökosystem rund um das iPhone / iPad wird sehr streng kontrolliert.

BEARBEITEN: Eine wichtige Ausnahme ist das Schreiben einer Web-App für das iPhone. Es gibt einige hervorragende Web-Apps für das iPhone, die fast so gut sind wie die Benutzererfahrung einer nativen App. Ich habe Ihre Frage jedoch so interpretiert, dass sie sich auf die native App-Entwicklung bezieht. Web-Apps sind, obwohl der Benutzer ein Symbol zum Starten erstellen kann, immer noch Bürger zweiter Klasse.

iandotkelly
quelle
4
Obwohl es möglicherweise zulässig ist, Lion in der Virtualisierung auszuführen, wenn Sie Linux auf einem Mac ausführen.
Cajunluke
4

Ich hatte Erfolg beim Erstellen von iOS-Apps unter Linux mit dem iOS-Clang-Toolchain von cjacker . Grundsätzlich besteht es aus den Upstream-Clang- und llvm-Tools Ihrer Linux-Distribution, einem Linux-Port des Apple-Linkers und einigen zusätzlichen Tools zur Vereinfachung des Erstellungsprozesses (z. B. Konvertieren von Xcode-Projekten in das Makefile-Format).

Die Installation dauert einige Schritte, aber Sie sind ein Softwareentwickler, sodass Sie daran gewöhnt sind. Ich habe ein aktuelles Howto für Debian 7 (Wheezy) online gestellt:

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

Ansonsten möchten Sie mit den allgemeinen Anweisungen gehen, die etwas älter sind:

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

Viel Glück.

Roger Keays
quelle
2

Es gibt ein Framework namens Rhodes .

Das Konzept basiert auf Ruby on Rails. Sie entwickeln Ihre mobile App in Ruby und HTML und können Ihren Code in einer Linux-Umgebung schreiben. Anschließend können Sie bei Rhohub ein Konto erstellen , in dem Sie den Code (über GitHub ) hinzufügen und ihn für iPhone, Blackberry, Android, Windows Mobile und Symbian mit demselben Code kompilieren. Sie müssen weder in Objective-C für iPhone noch in Java für Android usw. codieren. Es führt die Konvertierungen für Sie durch. Sie müssen sich lediglich an die Regeln zum Erstellen einer iPhone-Anwendung (oder der Telefone, für die Sie entwickeln möchten) halten, damit diese bei iTunes (oder einem gleichwertigen Markt) akzeptiert werden kann.

Auf diese Weise können Sie die App auch zu iTunes hinzufügen.

Ich habe jedoch keine Emulatoren gefunden, was bedeutet, dass Sie Ihre App zum Testen auf ein iPhone stellen müssen, was eine Mission ist.

Ich verwende diese Option, da ich Apps für alle Telefone erstellen möchte und Ruby on Rails bereits verwende. Wenn Sie nur eine App für ein iPhone erstellen möchten, investieren Sie in einen Mac.

Hoffe das hilft.

Theo Scholiadis
quelle
1

Sie haben Recht, Telefone ohne Jailbreak sind auf den App Store von Apple beschränkt, und Apple "hat das Recht", alle Regeln durchzusetzen. Es ist völlig unfrei. Während der Entwicklung muss man sich jedoch überhaupt nicht mit Apple auseinandersetzen. Sie können zB rsync verwenden, um den Code auf das Gerät hochzuladen und zu testen.

Johan Boulé
quelle
Überwindet dieses Projekt das von Stephen Cox vorgestellte Problem? "Sie werden Ihre App niemals von Apple genehmigen lassen, wenn sie nicht mit Xcode entwickelt wurde. Niemals. Und wenn Sie das SDK hacken, um es unter Linux zu entwickeln, und Apple es herausfindet" Danke
während es am
libmobiledevice verfügt über eine anständige Schnittstelle zum Installieren von Anwendungen, ohne dass rsync / ssh auf einem iDevice erforderlich ist.
Dwight Spencer
1

Bis zu einem gewissen Grad ist es ja möglich. Sie können Objective-C-Code eingeben und Ihre Projekte einrichten. Sie können sogar die C- und C ++ - Teile Ihres Codes mit gcc testen.

Was Sie nicht tun können:

  • Verwenden Sie den Interface Builder, um Ihre Benutzeroberfläche einzurichten, da sie nur für den Mac bestimmt ist. (Nicht erforderlich, aber empfohlen.)
  • Kompilieren Sie Code, der Apples Cocoa-Klassen verwendet - sie existieren unter Linux nicht.
  • Testcode im Simulator - es gibt keinen für Linux.
  • Kompilieren Sie Code für reale Geräte oder für den App Store - all dies erfordert Tools, die Apple nur für OS X bereitstellt.
Cajunluke
quelle
Was meinst du, wenn du sagst, dass die Klassen nicht existieren? Ich brauche nur die Header, Apple wird sie sowieso für mich verlinken. So funktioniert die Einreichung von Apps, AFAIK.
Janus Troelsen
1

Sie müssen Mac dafür bekommen. Es stehen mehrere Toolketten zur Verfügung (z. B. Win-Chain), mit denen Sie i Phone-Anwendungen unter Windows schreiben und erstellen können. Es gibt mehrere zugehörige Tutorials zum Erstellen des Objective C-Codes unter Windows. Es gibt jedoch ein Problem. Die so entwickelten Apps funktionieren nur auf Jail Broken i Phones.

Wir haben nur wenige Hacks gesehen, um darüber hinwegzukommen und es in den App Store zu schaffen, aber da Apple weiterhin SDKs aktualisiert, müssen Toolketten regelmäßig aktualisiert werden. Es ist mühsam, es immer wieder gut zu machen. Wenn Sie eine App fertig machen möchten, können Sie auch Hilfe von arcapps in Anspruch nehmen, das Apps zu einem vernünftigen Preis startet. iPhone App Entwicklung

Isabella Jacob
quelle
1

Ich habe versucht, cocos2d-iphone auf GNUstep zu portieren, damit Sie ein Spiel entwickeln können , das auf cocos2d basiert. Zum Veröffentlichen benötigen Sie jedoch einen Mac. cocos2d-GNUstep .

user602592
quelle
0

Ich würde empfehlen, einen Mac zu kaufen, da der iOS-Simulator hervorragend zum Testen in den frühen Phasen einer App geeignet ist. Aber ich kenne eine kleine Firma, mit der wir zusammenarbeiten und die sich mit Unity entwickelt, sodass sie keine Macs benötigen. Auf diese Weise benötigen sie nur einen Mac für das Büro, um den endgültigen Build zu kompilieren. Es bedeutet auch, dass es auf Android funktioniert, aber es hängt wirklich davon ab, was Ihr Gebäude ist, weil es eine Spiele-Engine ist. Möglicherweise möchten Sie Web-Apps mit Frameworks wie Sencha Touch Mobile untersuchen

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

dciso
quelle
-5

Wenn Sie Ihre Zeit schätzen, kaufen Sie einen Mac! Ich weiß nicht genug über Linux-Entwicklungsoptionen, um eine praktikable Lösung anzubieten, aber es scheint, dass die vorgeschlagenen Methoden einige ziemlich umständliche Arbeiten beinhalten. Wenn Sie ernsthaft iPhone-Apps schreiben und verkaufen möchten, können Sie die Kosten für einen Mac Mini oder ein Macbook leicht amortisieren. :-)

Ben Gotow
quelle
4
Jetzt, wo es ungefähr 50.000 Apps gibt, ist es nicht unbedingt einfach, viel zu machen. Salattage sind vielleicht vorbei.
Nosredna
@Nosredna Ich glaube jedenfalls, dass Salattage wieder da sind. Aber im Ernst, du hast recht.
Wyatt8740
Alter, wenn wir nach einer Alternative dafür suchen, dann deshalb, weil der Kauf einer nicht verfügbar ist.
Roger Russel
-5

Sie werden Ihre App niemals von Apple genehmigen lassen, wenn sie nicht mit Xcode entwickelt wurde. Noch nie. Und wenn Sie das SDK hacken, um es unter Linux zu entwickeln, und Apple es herausfindet, wundern Sie sich nicht, wenn Sie bedient werden. Ich bin Mitglied des ADC- und des iPhone-Entwicklerprogramms. Vertrauen Sie, Apple meint es sehr ernst.

Gehen Sie kein Risiko ein, kaufen Sie ein Macbook oder einen Mac mini (ja, ein Mini kann Xcode ausführen - wenn auch langsam - und erhöhen den Arbeitsspeicher, wenn Sie sich für den Mini entscheiden). Während ich gesehen habe, wie OS X gehackt wurde, um auf VMware ausgeführt zu werden, habe ich noch nie jemanden gesehen, der Xcode auf VM ausführt. Also viel Glück. Und ich würde die EULA überprüfen, bevor Sie sich die Mühe machen.

PS: Nachdem ich das Obige gelesen habe, stimme ich zu. Wenn Sie das SDK hacken und unter Linux entwickeln, machen Sie zumindest die endgültige Verpackung auf einem Mac. Und senden Sie es über einen Mac. Apple durchläuft den Code nicht Zeile für Zeile, daher bezweifle ich, dass sie das verstehen würden. Aber Mann, das ist viel Wenn und Arbeit. Sei aber lustig. :) :)

Stephen Cox
quelle
1
Neue Minis sind gut für die Aufgabe. Ich denke, sie kosten ungefähr 600 US-Dollar und Sie können fast jede Maus, Tastatur und jeden Monitor verwenden. Stellen Sie sicher, dass Sie den Monitor kalibrieren! XCode scheint auf meinem nicht erweiterten Mini ziemlich gut zu laufen.
Nosredna
7
Xcode läuft in einer virtuellen Mac OS X-Maschine einwandfrei.
Dave1010
2
Apple genehmigt ständig Air SDK-Apps, ohne Interaktion mit XCode. Sie können den gesamten Build unter Linux / Windows ausführen.
j_mcnally