Esiste un motivo tecnico per cui non è possibile sviluppare app iOS su un computer Linux?

22

Capisco perché non è possibile sviluppare app OS X su un computer Linux, ma esiste una buona ragione tecnica per cui non è possibile sviluppare app per iPhone e iPad su Linux? Perché non è possibile compilare il codice sorgente iOS in un eseguibile iOS ed eseguirlo in un simulatore iOS su Linux o installarlo su un dispositivo iOS di sviluppo?

È solo perché l'IDE XCode è un'applicazione Cocoa?

È possibile sviluppare app Android su qualsiasi tipo di piattaforma, a quanto pare. Non vedo perché lo stesso non può essere vero per iOS.

    
posta dan 05.08.2011 - 22:37
fonte

7 risposte

16

Mac OS X può essere eseguito solo contrattualmente su hardware Apple. iOS richiede il framework Cocoa e l'accesso a un Mac per firmare il portachiavi. Mentre puoi usare Objective-C su Linux usando le librerie OpenStep, non puoi spingere le applicazioni sviluppate su iOS a causa della mancanza delle corrette librerie API Cocoa e mentre puoi spingere su un dispositivo jailbroken senza keychaining con uno sviluppatore completo account, per vendere la suddetta app o anche per farla scaricare dal pubblico, si gioca con le regole di Apple.

    
risposta data 05.08.2011 - 22:58
fonte
17

Non c'è una ragione tecnica particolare, ma gli strumenti di sviluppo di Apple funzionano solo sui Mac, e non vedo che abbiano fretta di cambiarli.

Per quanto riguarda gli strumenti di sviluppo di terze parti, Apple li apprezza molto pubblicamente e, dato il potere assoluto di veto di Apple su ciò che entra nell'App Store, non è una grande idea investire alcun significativo tempo di sviluppo nel realizzarli / usarli.

(Uno degli strumenti di sviluppo - il simulatore iOS - è strongmente legato a MacOS X per motivi tecnici solidi. AFAIK è in realtà un sottile involucro tra iOS e le API MacOS X molto simili, che sarebbe infinitamente più difficile da fare su un altro sistema operativo. Dovresti ricominciare da capo e probabilmente finire con qualcosa come cane lento e orribile come l'emulatore di Android)

    
risposta data 05.08.2011 - 23:15
fonte
8

Dipende da cosa intendi per "motivo tecnico"

In senso stretto non credo che ci sia un motivo tecnico per cui le app iOS non possano essere sviluppate su Linux. Richiederebbe qualche entità, che si tratti di Apple o di un gruppo di hacker intraprendenti / di talento, di creare una toolchain per questo (compilatori, forse un IDE, qualcosa per averlo sul telefono).

Quindi se per "ragione tecnica" intendi "qualcosa di speciale sul Macintosh che è impossibile e non potrebbe esistere su un'altra piattaforma" allora no, non credo che ci sia. Ad esempio, non c'è un chip speciale sul Macintosh che è necessario per questo.

Se per "ragione tecnica" intendi "qualcosa che mi impedisce di essere in grado di farlo oggi" allora sì, l'intero bit di codice firmato non esiste su Linux e, a meno che Apple non lo porti, questo è il gioco della palla.

    
risposta data 05.01.2012 - 17:46
fonte
4

Penso che dovrebbe dire che puoi sviluppare per iOS su altre piattaforme, non puoi semplicemente creare applicazioni finali su di esse.

È stato spiegato nella risposta accettata perché non puoi costruire fuori da OS X, ma ci sono molti strumenti di sviluppo che ti permettono di scrivere app iOS su altre piattaforme.

Alcuni degli strumenti di sviluppo che ho usato permettono questo:

  • Qt Framework (C ++ e Qml): le applicazioni possono essere scritte in Windows o Linux, quindi l'applicazione iOS è costruito con XCode su OS X.

  • Unity3D (C #, UnityScript e Boo): puoi sviluppare su Windows e creare un iOS su entrambe le piattaforme che generi un progetto XCode. Ciò consente anche un'ulteriore integrazione con altri codici Objective-C.

  • Xamarin (C #): puoi sviluppare su Windows (e credo che Linux) e utilizzare una macchina OS X come costruire l'host.

  • Kivy (Python): Genera anche progetti XCode.

E puoi trovare molti altri progetti come questi, specialmente quando inizi a guardare i framework per app Web ibride e mobili come Appcelerator.

    
risposta data 22.09.2014 - 13:35
fonte
0

Non esiste alcuna ragione tecnica per cui non sia possibile sviluppare applicazioni iOS su linux. In effetti succede già su Windows in Delphi XE. Lì puoi sviluppare le tue app iOS completamente in windows. L'unica cosa alla fine necessaria è che le tue app debbano essere firmate. Questo può essere fatto solo su un Mac.

    
risposta data 22.09.2014 - 15:23
fonte
0

C'è una ragione tecnica per cui Xcode non consentirà lo sviluppo di app iOS su altri sistemi.

iOS è simile in molti modi a OS X. Molti dei framework sono identici o molto vicini. Il simulatore iOS fa uso di questo per fornire un ambiente di test molto veloce. Quando Xcode compila un'app da eseguire nel simulatore, crea binari x86 che si collegano ai framework che principalmente si basano su framework OS X. Finisci con una build di debug che viene eseguita in modo nativo sul tuo Mac, che ha grandi prestazioni.

Se guardi ad Android, crea apk indipendenti dalla piattaforma che vengono poi emulati in un emulatore Android o in un altro. Questo esegue una macchina virtuale che esegue l'intero stack Android per il debug. Esistono emulatori più veloci di altri, ma tutti molto più lenti del simulatore. Il vantaggio, tuttavia, è che sono multipiattaforma.

Affinché Apple consenta la creazione di app iOS su altri sistemi, è necessario che portino i framework a tali sistemi operativi in modo che possano scrivere un simulatore o costruiscano un emulatore. Uno di questi sarebbe un pezzo di lavoro che richiederebbe molto tempo per creare nuove funzionalità.

    
risposta data 22.09.2014 - 17:28
fonte
0

Sebbene non sia possibile firmare applicazioni per iOS su Linux, e quindi distribuirle attraverso i metodi accettati, è possibile sviluppare (con le stesse API) su Linux usando Theos. Questa è la toolchain utilizzata dalla comunità di jailbreak per sviluppare app per iOS ed è multipiattaforma. Se il tuo dispositivo iOS è jailbroken, credo che sarai in grado di spingere l'applicazione compilata sul tuo dispositivo tramite libimobiledevice, ma qualcuno potrebbe correggermi se sbaglio.

Altre informazioni: link

Ho intenzione di provarlo nel prossimo giorno o giù di lì, e fornirò aggiornamenti.

    
risposta data 24.11.2014 - 06:37
fonte

Leggi altre domande sui tag