2010-05-15 10 views
6

No he encontrado una lista completa de los pasos necesarios para usar una API privada de la biblioteca de iPhone.Cómo usar las API privadas de SDK de iPhone

En particular, me gustaría saber cómo obtener los archivos de encabezado, si son necesarios, cómo compilarlo (cuando simplemente agrego el encabezado, me quejo de que las funciones no están definidas), y qué recursos se pueden usar para aprender sobre las API privadas (por ejemplo, de las experiencias de otros usuarios, como http://iphonedevwiki.net/, que tiene algunas).

He leído en otros lugares que la gente recomienda usar class-dump para obtener los encabezados. ¿Hay algún método alternativo? Me he dado cuenta de que hay some repositories de iPhone SDK privados, ¿cuáles son los recursos más actualizados que recomendaría?

La mayor parte del previousquestions acerca de la documentación de la API privadas, han todos ellos vinculados a Erica Sadun's website, que no parecen tener la documentación más (todos los enlaces de la izquierda están tachados).

Por favor, guarde los comentarios acerca de no usar la API privada ... Sé de los mayores riesgos:

  • aplicación obtendrá rechazada por Apple.
  • La aplicación se interrumpirá en futuras actualizaciones del sistema operativo.

Estoy hablando de usos legítimos, tales como:

  • uso de la aplicación privada (por ejemplo, para las pruebas unitarias, o jugar un poco para ver lo que es posible)
+0

Duplicado: http://stackoverflow.com/questions/1150360/iphone-private-api-documentation – rjstelling

+0

Propuesta de StackExchange: http://area51.stackexchange.com/proposals/18154/jailbreak-iphone-development?referrer= EuWVi6IpN0_KzzEhC7I-Qw2 – rjstelling

Respuesta

5

de Objective-C tiene suficiente información en el binario compilado para reconstruir casi por completo los encabezados. Lo único que falta son los nombres de los argumentos, que a menudo se pueden aproximar a partir del prototipo de tipo o método, y algunas definiciones de estructura y enumeración. Es por eso que los programas como el volcado de clases son la mejor manera de obtener los encabezados. Son completos, incluidos todos los métodos, ya sea en el encabezado real o no, actualizados y no necesitan ser distribuidos. La otra forma de obtener encabezados es buscar en la versión pública del mismo marco, por ejemplo, WebKit solo es privado en el iPhone y está bien documentado.

Si le interesan las cosas además de Objective-C, tiene que hacerlo a la antigua usanza, avanzando a través del desmontaje para adivinar los argumentos de las funciones. Una vez que obtienes algunos símbolos, búscalos y tal vez encuentres un encabezado que alguien más ha publicado. otool es un buen lugar para comenzar.

Si incluye los encabezados, ya sea para Objective-C o C, también debe incluir los marcos o bibliotecas para los que los encabezados declaran métodos, al igual que cualquier otro encabezado. La mayoría de las cosas de Objective-C están en una carpeta de PrivateFrameworks junto a la carpeta regular de Frameworks. Puede buscar en la carpeta usr/lib para buscar bibliotecas.

Tenga en cuenta que existen muchas diferencias entre el simulador y el dispositivo, así que asegúrese de construir encabezados desde el dispositivo real. También hay algunos métodos que no tendrá permiso para ejecutar como una aplicación de espacio aislado.