Ejecute un proceso unix estándar (no una aplicación) en iPhone desde la línea de comandos de OS X

Estoy trabajando para mejorar la compatibilidad con la compilación cruzada de iOS para ghc, que tiene una función de metaprogramación que requiere ejecutar código en tiempo de compilación. Un mecanismo para esto implica ejecutar un proceso en el destino y comunicarse con él desde el compilador a través de conductos. Este es un proceso unix estándar (uno compilado para iOS), no una aplicación para iPhone. ¿Cómo puedo iniciar este proceso en un iPhone conectado desde el cuadro OS X donde se ejecuta el compilador? Para el simulador puedo usar simctl spawnpero no conozco nada similar para dispositivos reales.

Respuestas (1)

no puedes

Los dispositivos iOS encarcelados no tienen ningún método para ejecutar ningún programa determinado de forma remota. Tendrías que hacer jailbreak a tu dispositivo para tener acceso a la terminal.

El simulador de iOS es ligeramente diferente, ya que carece de muchas de las funciones de seguridad que tiene el iOS completo y se ejecuta directamente en su Mac como procesos secundarios (en lugar de un emulador que emula un procesador ARM).

Puede que sea cierto que lo que estoy intentando es imposible, pero este razonamiento no tiene sentido. Puede vincular código nativo arbitrario en una aplicación, cualquier cosa insegura/liberada que pueda hacer desde un proceso normal también podría hacerlo desde una aplicación. O, para decirlo de otra manera, cualquier proceso de sandboxing que le suceda a una aplicación podría aplicarse igualmente al proceso tradicional que quiero ejecutar.
@SheaLevy El razonamiento tiene perfecto sentido. Las características de seguridad en un iDevice físico evitan que cualquier código se ejecute de forma remota desde una computadora conectada. iOS en el dispositivo también se encarga del sandboxing completo de cada aplicación, por lo tanto, incluso si ejecuta su proceso desde dentro de una aplicación, no podrá comunicarse con ella desde ninguna otra aplicación o proceso.
Excepto que puedo ejecutar una aplicación muy bien desde mi computadora. desarrollador.apple.com/library/content/documentation/IDEs/…