2009-10-08 12 views
5

Ho un progetto open source (gdal) che voglio compilare ed eseguire come parte di un'app iOS. Mi aspettavo di usare NSTask ma ora vedo che è stato rimosso in iOS 3.0. Ho anche visto altrove che l'esecuzione di applicazioni esterne, anche se questa sarebbe una risorsa nel pacchetto della mia app, non è consentita.NSTask o equivalente per iPhone

Qualcun altro ha trovato un modo per eseguire gli strumenti della riga di comando all'interno delle proprie applicazioni iOS?

+0

Attualmente sto provando per una cosa simile, hai mai finito per farlo funzionare? –

+0

So che questo è un vecchio thread ma è la prima cosa che viene in mente su google 'nstask su iphone'. Ne ho parlato per iphone jailbroken: http: //stackoverflow.com/questions/9983430/trying-to-use-cydia -libraries-nstask-on-jailbroken-iphone-crashes-with-segmenta/10019390 – apple16

risposta

7

Non è stato rimosso in 3.0, non è mai stato lì. Non c'è modo di eseguire processi separati su iPhone. GDAL sembra essere sotto una licenza in stile MIT e ha un'interfaccia di libreria, quindi collegarlo direttamente a un'app per iPhone non dovrebbe avere problemi legali o tecnici.

+1

Grazie Louis, È lo stesso processo di collegamento a uno dei framework forniti da Apple? libgdal.a è circa 40mb, considerevolmente più grande del resto del mio progetto, quindi speravo di usare solo l'eseguibile gdalinfo (circa 5mb) ma non sembra qualcosa a cui posso direttamente collegarmi. So che non ci sono molte app per iPhone open source, ma se ti capita di sapere di link in codice diverso da quello di Apple, sarei davvero interessato a vedere come è fatto. – Craig

+0

Bene, ovviamente la quantità di codice necessaria per la funzionalità desiderata deve essere inferiore a 40 megabyte. Se sia possibile ritagliarlo efficacemente è un problema a parte. Inoltre, direi che 40 megs significa che non è stato cancellato e che ha tutti i simboli di debug (che possono essere abbastanza grandi). Quanto si restringe se lo spoglia? –

+0

Penso che dovrò fare molte più domande su questo sito. Non sono sicuro di come rimuovere i simboli di debug. È stato compilato usando "build_for_iphoneos", una sceneggiatura scritta da Christopher Stawarz, forse ci sono alcune note su quali flag devo impostare. Nel frattempo proverò a importarlo come un framework e vedrò quali funzioni posso eseguire sulla versione full 40mb. – Craig

1

NSTask è disponibile in ios 4, ios 3 e possibilmente tutti. Per usare NStask dovevo copiare il file di intestazione NStask dal mio mac nella cartella del mio progetto. Molto probabilmente Apple non consentirà un'applicazione che utilizza NStask nell'appstore. Cydia sarebbe probabilmente il posto migliore per distribuire la tua app

+0

Hai provato questo su un dispositivo? Se hai appena provato nel simulatore, avrebbe utilizzato il sorgente Mac OS X, dato che mancherebbe NSTask.m, il file più necessario. – jrtc27

+0

Credo di averlo provato su un dispositivo, ma non mi ricordo – romejoe

+0

NSTask è su iOS, serve l'intestazione per compilare tutto. –

0

Solo promemoria:
NSTask non funzionerà in ambiente sandbox (si otterrà "nega process-fork"). Quindi metti la tua applicazione in/Applicazioni

+0

eh? Non penso che tu abbia molta scelta su dove installare le app per iPhone. – Craig

+1

Potrebbe essere necessario il jailbreak. – hewigovens

+0

Domanda: come si copia? Alla mia normale cartella di progetto e poi a #importarlo? --------- Cosa c'è nel commento del jailbreak? È vero che Apple rifiuterà l'app dal negozio se NSTask è utilizzato su iOS? ---------- Voglio fare questo: http://stackoverflow.com/questions/16626577/ios-and-calling-terminal-commandos-with-ibaction?noredirect=1#comment23907909_16626577 – webschnecke

Problemi correlati