¿Qué son las llamadas a API privadas y qué información puedo obtener sobre mi iPhone?
Además de la API pública: API publicada (o llamada API de documento: API documentada), existen dos tipos de API en iPhone: API privada: API privada y API no publicada: API no publicada (o API de documentos: API no documentada). API: API no documentada). Las API privadas se refieren a las API ubicadas en el marco de Private Frameworks, mientras que las API no expuestas se refieren a las API ubicadas en el marco de Frameworks pero no documentadas en la documentación oficial de Apple (como instrucciones de uso y descripciones de código).
Existe una diferencia entre las dos últimas categorías de API; según Apple, las API no documentadas son API que están menos maduras y aún pueden sufrir cambios. Apple cree que las API no publicadas se refieren a API que no están lo suficientemente maduras y pueden cambiar. Una vez que estén completamente formadas, se convertirán en API públicas, pero actualmente no proporcionan un compromiso con ellas, es decir, pueden dejar de ser válidas después de la versión del sistema. está actualizado. Las API privadas son API que Apple dice explícitamente que no se pueden usar. Aunque existen diferencias entre las dos, son similares en la forma en que se usan.
II. Introducción detallada
1. Exportar declaración de archivo de encabezado para generar API privada
Para utilizar API privada o no publicada, primero debe exportar su encabezado correspondiente. Archivo, hay declaraciones de funciones relevantes en el archivo de encabezado.
Herramientas:
class-dump
class-dump puede extraer declaraciones de estructuras de datos, funciones, etc. de binarios compilados de Objective-C.
Cómo utilizar:
Para utilizar el comando class-dump en cualquier directorio, primero se recomienda copiar el archivo class-dump al directorio /user/local/bin/ y luego podrá usarlo en cualquier directorio. Ejecute el siguiente comando en el directorio:
class-dump /Developer/ Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/. Library/Frameworks/UIKit.framework/ >UIKit.h
El comando anterior puede extraer la estructura de datos y la declaración de función de UIKit.Framework del marco de Frameworks en iPhoneSimulator3.0.Sdk y colocarlo en UIKit. Archivo .h. Después de eso, puede encontrar la declaración de la interfaz de la aplicación y su uso en este archivo de encabezado. Asimismo, puede exportar las declaraciones API para los marcos requeridos una por una.
También puede utilizar el archivo DumpFrameworks.pl escrito por ericasadun (hay algunos comentarios en el archivo) para extraer todos los archivos de encabezado API en el marco privado. El uso también es copiar primero el archivo de volcado de clase al directorio /user/local/bin/ y luego ejecutarlo en cualquier directorio. /DumpFrameworks.pl, y luego se generará una carpeta de Encabezados en su directorio de inicio, que enumera los archivos de encabezado de API en el marco privado.
2. Utilice API privadas
Después de exportar las declaraciones de encabezado de las API privadas, puede utilizarlas fácilmente. Primero, incluya el archivo de encabezado en su proyecto, luego importe el marco apropiado y luego podrá usar la API privada en su código de manera similar a proporcionar una biblioteca estática.
3. Notas adicionales
Algunas de las API más complejas e interesantes de la programación de iPhone están contenidas en API privadas o no publicitadas.
Si bien es posible utilizar estas excelentes API de esta manera, existen algunos riesgos involucrados: en primer lugar, las API expuestas pueden cambiarse, por lo que el código puede romperse con cada versión de firmware.
Además, el mayor problema es que los programas que utilizan API privadas no se pueden vender en la tienda de aplicaciones. Entonces, si simplemente estamos probando estas maravillosas API en el iPhone por diversión, también está bien. Si vende su aplicación en la App Store, no utilice una API privada.