2009-10-08 6 views
5

Tengo un proyecto de código abierto (gdal) que quiero compilar y ejecutar como parte de una aplicación de iOS. Esperaba usar NSTask, pero ahora veo que fue eliminado en iOS 3.0. También he visto en otra parte que ejecutar aplicaciones externas, aunque esto sería un recurso en el paquete de mi aplicación, no está permitido.NSTask o equivalente para iPhone

¿Alguien más ha encontrado una forma de ejecutar las herramientas de línea de comandos dentro de sus aplicaciones de iOS?

+0

Actualmente estoy intentando algo similar, ¿alguna vez terminaste haciendo que esto funcione? –

+0

Sé que este es un hilo viejo, pero es lo primero que aparece para google 'nstask en iphone' Lo llamé para iphones jailbroken: http: //stackoverflow.com/questions/9983430/trying-to-use-cydia -libraries-nstask-on-jailbroken-iphone-crashes-with-segmenta/10019390 – apple16

Respuesta

7

No se eliminó en 3.0, nunca estuvo allí. No hay forma de ejecutar procesos separados en el iPhone. GDAL parece estar bajo una licencia de estilo MIT y tiene una interfaz de biblioteca, por lo que vincularlo directamente a una aplicación de iPhone no debería tener ningún problema legal o técnico.

+1

Gracias Louis, ¿Es el mismo proceso que enlazar a uno de los marcos suministrados por Apple? libgdal.a es de aproximadamente 40mb, considerablemente más grande que el resto de mi proyecto, así que esperaba usar el ejecutable gdalinfo (aproximadamente 5mb) pero eso no se ve como algo con lo que pueda vincular directamente. Sé que no hay muchas aplicaciones de iPhone de código abierto, pero si usted conoce alguna que enlace en un código que no sea el marco de Apple, estaría realmente interesado en ver cómo se hace. – Craig

+0

Bueno, obviamente la cantidad de código necesario para la funcionalidad que desea debe ser inferior a 40 megabytes. Si puedes dividirlo efectivamente es un problema aparte. Además, creo que 40 megas significa que no está desmantelado y tiene todos los símbolos de depuración (que pueden ser bastante grandes). ¿Cuánto se encoge si lo despojas? –

+0

Creo que tendré que hacer muchas más preguntas en este sitio. No estoy seguro de cómo desmantelar los símbolos de depuración. Fue compilado usando "build_for_iphoneos" un guión escrito por Christopher Stawarz, tal vez haya algunas notas sobre qué banderas necesito establecer. Mientras tanto, intentaré importarlo como un marco y ver qué funciones puedo ejecutar en la versión completa de 40 MB. – Craig

1

NSTask está disponible en ios 4, ios 3 y posiblemente en todos ellos. Para usar NStask tuve que copiar el archivo de encabezado de NStask desde mi mac a la carpeta de mi proyecto. Además, es muy probable que Apple no permita una aplicación que use NStask en la tienda de aplicaciones. Cydia probablemente sea el mejor lugar para distribuir su aplicación

+0

¿Has probado esto en un dispositivo? Si acaba de probar en el simulador, habría utilizado la fuente de Mac OS X, ya que faltaría NSTask.m, el archivo más necesario. – jrtc27

+0

Creo que lo probé en un dispositivo, pero no recuerdo – romejoe

+0

NSTask está en iOS, necesita el encabezado para que compile, eso es todo. –

0

Recordatorio simple:
NSTask no funcionará en el entorno de sandbox (obtendrá "deny process-fork"). Así que ponga su aplicación en/Applications

+0

uh? No creo que tenga muchas opciones sobre dónde se implementan las aplicaciones de iPhone. – Craig

+1

Es posible que necesite hacer jailbreak .. – hewigovens

+0

Pregunta: ¿Cómo lo copio? Para mi carpeta de projekt normal y para #importarlo? --------- ¿Qué pasa con el comentario de Jailbreak? ¿Es cierto que Apple rechazará la aplicación de la tienda si se usa NSTask en iOS? ---------- Quiero hacer esto: http://stackoverflow.com/questions/16626577/ios-and-calling-terminal-commandos-with-ibaction?noredirect=1#comment23907909_16626577 – webschnecke