Descargue y ejecute el código de iOS dinámicamente en tiempo de ejecución
frameworks dynamic-linking (1)
Pruebe algo como
void *uikit = dlopen("path_to_dylib", RTLD_LAZY);
id (*FunctionName)(id) = dlsym(uikit, "FunctionName");
FunctionName(arg1);
dlclose(uikit);
Para obtener más información, puede leer sobre la carga dinámica aquí: http://en.wikipedia.org/wiki/Dynamic_loading
Como ejercicio académico y mental, ¿cómo se puede descargar un archivo binario precompilado y ejecutar métodos en él en un dispositivo iOS?
Entiendo que esto infringe el Acuerdo de licencia de Apple, sección 3.2.2, pero estoy solicitando proyectos personales y para aprender más sobre el tiempo de ejecución de iOS.
Gol
- Descargue http://someexample.com/MyCoolBinary.a
- Guarde el disco binario descargado en el dispositivo.
- Llamar a un método conocido que existe en el binario.
Lo que he intentado
No he intentado nada concreto, pero me imagino que sería posible hacer algo como ...
void *myDownloadedLibrary = dlopen("/path/to/newly/downloaded/framework/MyCoolBinary.framework")
dlsym(myDownloadedLibrary)
Se agradecerá cualquier ejemplo o punteros sobre con qué tipo de bibliotecas funcionaría esto.
Gracias.