Avvio dello sviluppo di app per iPhone in Linux? [chiuso]


529

Ho sentito che è necessario ottenere un Mac se si desidera sviluppare app per iPhone. È vero?

È possibile sviluppare app per iPhone usando Linux? Se sì, di cosa ho bisogno e dove posso scaricare gli strumenti necessari?



2
qualcuno può modificare questo s / Linux / unix per generalizzarlo?
Brava persona il

5
@GoodPerson Quindi potresti confondere la linea tra OS X e altri sistemi operativi, ed è di questo che tratta questa domanda.
Lister,

2
una delle informazioni più importanti che abbia mai trovato. assolutamente in argomento, direi ...
Marco Faustinelli,

Risposte:


303

Per fornire una risposta diversa, sto eseguendo OS X e Xcode su una macchina virtualizzata (VMware) su Linux. La CPU è un Core2Quad (Q8800) ed è perfettamente veloce. Ho trovato una VM precompilata online (lo lascerò a te per trovare) Lo sviluppo di Xcode / iPhone funziona perfettamente, così come il debug tramite USB sul telefono stesso.

In realtà mi ha sorpreso molto, ma non ho avuto nessun problema.


11
Quindi, usando il tuo approccio, puoi firmarlo e distribuirlo su iTunes?
Eldelshell

43
Sì - nessun problema. Stai usando XCode, la firma funziona bene, ora ho un'app di produzione nello store, inviata dalla VM. Non lo nominerò per ovvie ragioni.
Caos

18
@Chaos: potresti per favore postare link a quello che hai usato esattamente per far funzionare la tua configurazione?
Glycan,

4
Si può fidare di una VM prefabbricata? Intendo software incorporato, backdoor ...
DummyBeginner,

2
Ok. La mia opinione su questo. Una volta sviluppata l'app è possibile utilizzare questo servizio per pubblicare macincloud.com
Fabrizio Bertoglio

75

La risposta a questo dipende davvero dal fatto che tu voglia o meno sviluppare app che vengono poi distribuite attraverso l'iPhone store. Se non lo fai, e non ti dispiace sviluppare per la folla iPhone "jailbroken", allora è possibile sviluppare da Linux.

Controlla la pagina di questo cap per una guida completa (se un po 'complessa) su cosa fare:

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


26

Sembra essere vero finora. L'unico SDK disponibile da Apple è destinato esclusivamente all'ambiente MacOS. Sono stato arrabbiato per questo, ma sto cercando di acquistare un mac ora, solo per fare lo sviluppo di iPhone. Non mi piace molto quello che stanno facendo e spero che esca un buon SDK per altri ambienti, come Linux e Windows.

Ostacoli relativi all'SDK:

IPhone SDK e software gratuito: non una partita

Apple ha recentemente rilasciato un kit di sviluppo software (SDK) per iPhone, ma se speravi di portarlo o sviluppare un software open source originale con esso, le notizie non sono buone. La firma del codice e le condizioni di non divulgazione rendono il software libero un gioco da ragazzi.

L'SDK stesso è un download gratuito, con il quale è possibile scrivere programmi ed eseguirli su un simulatore software. Ma per rilasciare effettivamente il software che hai scritto, devi iscriverti al Programma per sviluppatori iPhone: un passaggio separato dal download dell'SDK e uno che richiede l'approvazione di Apple.

Penso che sia piuttosto elitario per loro pensare che solo gli utenti macos siano abbastanza bravi da scrivere programmi per il loro telefono, e il fatto che tu abbia bisogno di acquistare una licenza da $ 100 se vuoi pubblicare le tue cose, rende davvero più difficile per il programmatore hobbista. Tuttavia, se è quello che devi fare, sto pensando di saltare attraverso i loro cerchi; Mi piacerebbe davvero sviluppare alcune cose sul mio iPhone.


9
Come è stato detto prima, non penso che qui sia colpa dell'elitismo. XCode e tutti gli altri strumenti di sviluppo (ad eccezione di elementi di basso livello come GCC) sono scritti in Cocoa, così come tutti i framework per iPhone. Dovrebbero prima portare tutto questo su altri sistemi operativi. Non è un compito da poco.
Brad Larson

24
Fammi sapere quando Microsoft rilascerà Visual Studio per Linux e Mac ...
Stephen Darlington,

12
Fammi sapere quando Microsoft rilascia Visual Studio, Access, Frontpage, XNA, DirectX, Office (con tutte le funzionalità), Movie Maker, Visio, IIS o Exchange per Mac / Linux.
Brock Woolf,

97
Fammi sapere quando Microsoft arriva contro l'EULA per eseguire Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS o Exchange in (Dar) Wine.
lfaraone,

5
@MarceloMason Kind of. È il codice di Visual Studio , non l'IDE completo.
Stephen Darlington,

20

Ci deve essere utilizzato un progetto dedicato a risolvere questo difetto: iphone-dev

L'obiettivo del progetto iphone-dev è quello di creare una toolchain gratuita, portatile e di alta qualità per consentire lo sviluppo dell'iPhone di Apple e di altri dispositivi integrati basati sulla piattaforma ARM / Darwin.


4
Il progetto non sembra essere sottoposto a regolare sviluppo o manutenzione dal sito (ad es. Le voci Wiki sulla costruzione dello strumento / portabilità sono del febbraio 2010).
ely,

4
@Sig. F, davvero è morto.
Johan Boulé,

13

Per quanto riguarda la catena di strumenti alternativi, il sito di Saurik è utile, ma per lo sviluppo del firmware più recente indica che si sta costruendo sull'iPhone stesso e rimane libero di indicare che potrebbe essere necessario copiare i file del firmware iPhone necessari nel proprio ambiente Linux. Non è impossibile, ma richiede solo un lavoro aggiuntivo, in particolare per la firma del codice (ci sono anche soluzioni alternative aperte).

Inoltre, dai un'occhiata ad altre guide (per la stessa catena di strumenti) che le affrontano in modo più metodico.

Suggerirei di eseguire ancora la build finale, la firma del codice e il packaging in XCode (che potrebbe significare prendere in prestito il Mac di qualcuno) nel caso in cui si verifichino problemi durante l'invio della domanda ad Apple. L'uso della catena di strumenti alternativa apre (almeno su Mac) la possibilità di utilizzare altri IDE diversi da XCode per sviluppare l'applicazione e ricorrere nuovamente a XCode per la distribuzione e il test con il simulatore.

Ovviamente se ottieni la firma del codice / la generazione del certificato funzionante dalla riga di comando al di fuori di XCode, puoi installare un certificato sul tuo iPhone reale e testarlo lì (installando l'app tramite iTunes con il tuo certificato).


7

L'unico modo che conosco per fare sviluppo in Linux per iPhone sarebbe installare Vmware e lavorare su come far funzionare OS X in una macchina virtuale. Detto questo, ci sono alcune preoccupazioni "legali" nel farlo. È stato riferito che OS X Server può essere virtualizzato ma per quanto riguarda la storia di sviluppo che non conosco.

Se sei davvero serio, questo è ciò su cui investigerei.

In bocca al lupo.


4
Ho provato l'opzione VMWare e almeno sul mio hardware (T5200 Core2, 2M ram), è insolitamente lento. La mia amica ha avuto un'esperienza simile.
Parand,

3
Anch'io. Lento, lento, lento. Non vuoi nemmeno provare.
Nosredna,

5
@Parand Ovviamente sarà lento su 2M di RAM, sono sorpreso che si avvii anche!
Jeshurun,

2
Potresti provare VirtualBox invece di vmware. Secondo me VMWare è troppo gonfio.
Harindaka,

5

Puoi usare Tersus (open source) e ti consente di esportare l'app come progetto Xcode.


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Quindi non sarà in grado di compilare e firmare un'app iOS nativa
MarSoft

5

Potresti essere in grado di scrivere codice su una scatola Linux che alla fine si troverà su un iPhone o iPad, ma alla fine avresti bisogno di un Mac per testare o distribuire il codice su iPhone o inviarlo all'App Store. Quindi alla fine hai bisogno di un Mac, quindi potresti anche fare il lavoro sul Mac, con tutti gli strumenti forniti da Apple. Esistono alternative a Xcode e Objective-C, come Monotouch, ma utilizzano anche gli strumenti Apple.

Con un po 'di lavoro puoi eseguire OS X in una VM su Linux. Tuttavia, dovrei sottolineare che questo violerà il contratto di licenza OSX, anche se acquisti la copia di OSX, poiché è concesso in licenza solo per essere eseguito su hardware Apple.

Mi dispiace darti questa notizia: l'ecosistema attorno all'iPhone / iPad è strettamente controllato.

EDIT: una delle principali eccezioni è la scrittura di un'app Web per iPhone. Esistono alcune eccellenti app Web per iPhone che sono quasi altrettanto efficaci dell'esperienza utente di un'app nativa. Tuttavia, ho interpretato la tua domanda in merito allo sviluppo di app native. Le app Web, sebbene l'utente possa creare un'icona per avviarle, sono ancora cittadini di "seconda classe".


4
Anche se può essere consentito eseguire Lion nella virtualizzazione se si esegue Linux su un Mac.
Cajunluke,

4

Ho avuto successo nel creare app iOS su Linux usando la toolchain iOS clang di cjacker . Fondamentalmente è composto dagli strumenti clang e llvm a monte della tua distribuzione Linux, una porta linux del linker di apple e alcuni strumenti extra per aiutare a semplificare il processo di compilazione (come la conversione di progetti xcode in formato Makefile).

L'installazione richiede pochi passaggi, ma sei uno sviluppatore di software, quindi ti ci abitui. Ho pubblicato un howto aggiornato per Debian 7 (Wheezy) online:

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

Altrimenti vuoi andare con le istruzioni generiche che sono un po 'più vecchie:

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

In bocca al lupo.


2

C'è un quadro chiamato Rodi .

Il concetto si basa su Ruby on Rails e sviluppi l'app mobile in Ruby e HTML e puoi scrivere il tuo codice in un ambiente Linux. Puoi quindi creare un account su Rhohub , dove aggiungi il codice (tramite GitHub ) e ti consente di compilarlo per iPhone, Blackberry, Android, Windows Mobile e Symbian, tutto con lo stesso codice. Non è necessario codificare in Objective-C per iPhone, né Java per Android, ecc. Fa le conversioni per te. Tutto quello che devi fare è attenersi alle Regole per la creazione di un'applicazione per iPhone (o del telefono per cui vuoi sviluppare), in modo che possa essere accettata su iTunes (o sul mercato equivalente).

Ciò ti consentirà di aggiungere l'app anche ad iTunes.

Tuttavia, non ho trovato alcun emulatore, il che significa che per testare la tua app devi metterla su un iPhone, che è una missione.

Sto usando questa opzione per creare app per tutti i telefoni e utilizzo già Ruby on Rails. Se vuoi solo creare un'app per un iPhone, investi in un Mac.

Spero che sia di aiuto.


1

Hai ragione, i telefoni senza jailbreak sono limitati all'App Store di Apple e Apple "ha il diritto" di applicare qualunque regola, è un territorio totalmente non libero. Tuttavia, durante lo sviluppo, non si dovrà assolutamente fare i conti con Apple. Puoi usare ad esempio rsync per caricare il codice sul dispositivo e testarlo.


Questo progetto supera il problema presentato da Stephen Cox? "Non riceverai mai l'app approvata da Apple se non viene sviluppata utilizzando Xcode. Mai. E se lo fai hackerare l'SDK per svilupparlo su Linux e Apple lo scopre" Grazie
mentre è vero il

libmobiledevice ha in realtà un'interfaccia decente per installare applicazioni senza bisogno di rsync / ssh su un iDevice.
Dwight Spencer,

1

In una certa misura, sì, è possibile. È possibile digitare il codice Objective-C e impostare i progetti. Puoi anche testare le parti C e C ++ del tuo codice con gcc.

Cosa non puoi fare:

  • Usa Interface Builder per configurare la tua interfaccia, poiché è solo per Mac. (Non richiesto, ma consigliato.)
  • Compila il codice che utilizza le classi Cocoa di Apple: non esistono su Linux.
  • Codice di prova nel simulatore: non ce n'è uno per Linux.
  • Compila il codice per dispositivi reali o per App Store: tutto ciò richiede strumenti che Apple fornisce solo per OS X.

quando dici che le classi non esistono, cosa intendi? Ho solo bisogno delle intestazioni, Apple lo collegherà comunque per me. Ecco come funziona l'invio di app, AFAIK.
Janus Troelsen,

1

È necessario ottenere mac per questo. Sono disponibili diverse catene di strumenti (come win-chain) che in realtà ti consente di scrivere e creare applicazioni i Phone su Windows. Esistono diverse esercitazioni associate per creare il codice obiettivo C su Windows. Ma c'è un problema, le app così sviluppate funzioneranno solo con i telefoni rotti.

Abbiamo visto alcuni hack per superarlo e arrivare all'App Store, ma poiché Apple continua ad aggiornare gli SDK, le catene di strumenti necessitano di aggiornamenti regolari. È una seccatura inventarsi tutto il tempo. Se vuoi prepararti un'app puoi anche ottenere aiuto da arcapps le sue app di lancio a un prezzo ragionevole. sviluppo di app per iPhone


1

Ho provato a trasferire cocos2d-iphone su GNUstep in modo da poter sviluppare un gioco basato su cocos2d. Tuttavia, per la pubblicazione è necessario un mac. cocos2d-GNUstep .


0

Consiglierei di ottenere un Mac perché il simulatore iOS è fantastico per i test nelle prime fasi di un'app. Ma conosco una piccola azienda con cui lavoriamo che si sviluppa utilizzando Unity, quindi non hanno bisogno di un sacco di Mac. In questo modo hanno solo bisogno di un mac per l'ufficio e questo è solo per compilare la build finale. Significa anche che funziona su Android, ma dipende davvero da ciò che costruisci perché è un motore di gioco. Potresti voler esaminare le app Web utilizzando framework come Sencha Touch Mobile

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


-5

Se apprezzi il tuo tempo, acquista un Mac! Non so abbastanza sulle opzioni di sviluppo di Linux per offrire una soluzione praticabile, ma sembra che i metodi proposti comportino un lavoro piuttosto circolare. Se hai intenzione di scrivere seriamente e vendere app per iPhone, penso che potresti facilmente recuperare i costi di un Mac Mini o Macbook. :-)


4
Ora che ci sono qualcosa come 50.000 app, non è necessariamente facile fare molto. I giorni dell'insalata sono forse finiti.
Nosredna

@Nosredna I per uno piace credere che i giorni delle insalate siano di nuovo qui. Ma sul serio, hai ragione.
Wyatt8740

Amico, se stiamo cercando un'alternativa, è perché comprarne uno non è un'opzione disponibile.
Roger Russel,

-5

Non riceverai mai l'app approvata da Apple se non è stata sviluppata utilizzando Xcode. Mai. E se lo fai hackerare l'SDK per svilupparlo su Linux e Apple lo scopre, non essere sorpreso quando ti viene servito. Sono un membro del programma per sviluppatori ADC e iPhone. Fidati, Apple è MOLTO seria al riguardo.

Non correre il rischio, acquista un Macbook o un Mac mini (sì, un mini può eseguire Xcode - anche se lentamente - aumenta la RAM se vai con il mini). Inoltre, mentre ho visto OS X hackerato per funzionare su VMware, non ho mai visto nessuno eseguire Xcode su VM. Perciò buona fortuna. E controllerei l'EULA prima di affrontare il problema.

PS: Dopo aver letto quanto sopra, sì, sono d'accordo se fai hacking SDK e sviluppi su Linux almeno esegui il packaging finale su un Mac. E invialo tramite un Mac. Apple non scorre il codice riga per riga, quindi dubito che lo prenderebbero. Ma amico, sono molti se e lavoro. Sii divertente comunque. :)


1
I nuovi mini vanno bene per l'attività. Penso che siano circa $ 600 e puoi usare praticamente qualsiasi mouse, tastiera e monitor. Assicurati di calibrare il monitor! XCode sembra funzionare abbastanza bene sul mio mini non espanso.
Nosredna,

7
Xcode funziona perfettamente in una macchina virtuale Mac OS X.
dave1010,

2
Apple approva continuamente le app Air SDK, zero interazione con XCode. Puoi fare l'intera build su linux / windows.
j_mcnally,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.