2011-06-21 8 views
5

¿Están garantizados todos los encabezados en/usr/include como parte de las API públicas cuando se trata de presentaciones de la Mac App Store?¿Todos los encabezados en/usr/include se consideran Public API en el MAS?

Considere, por ejemplo, el archivo /usr/include/copyfile.h

Los comentarios en este archivo decir lo siguiente: "Esta implementación es incompleta y la interfaz puede cambiar en una versión futura." ¿Esto hace que el encabezado no sea público? ¿Cómo determino si un encabezado se considera público?

Respuesta

3

Lea la sección inferior de la página de documentación this.

Extracto:

Mac OS X incluye muchas bibliotecas dinámicas en el directorio/usr/lib y sus subdirectorios. Las bibliotecas compartidas dinámicas se identifican por su extensión .dylib. Los archivos de encabezado para las bibliotecas se encuentran en/usr/include.

Parece que la implicación aquí es que las bibliotecas .dylib incluyen con OS X son presa fácil para el uso en su aplicación, pero hay que ser conscientes de que no garantizan tener una versión particular de la lib por ejemplo Lion, entonces deberías incluir la versión más genérica que puedas.

Como dijo @Dan, la otra cosa que lo recomendaría a una biblioteca que está bien para usar sería si tiene una página de manual. copyfile tiene una página man, por lo que está bien de usar (¡ya que le muestran cómo usarla!). Para aclarar aún más las cosas, consulte la página del manual getattrlist y busque 'copiar archivo'. Uno de los indicadores que puede leer para las capacidades de volumen indica compatibilidad con una segunda API copyfile(). Entonces, en este caso, hay 2 API de copyfile() y solo puede usar la que tiene una página de manual, ya que la otra está marcada aquí como privada e indocumentada.

Cualquier cabecera que no esté contenida en una carpeta de Framework y que no concuerde con .dylib o una página de manual, generalmente evitaría el uso.

5

Es público si está documentado. Tienes MUCHOS archivos .h en tu sistema que hacen referencia a API privadas. Así no es como sabes si es seguro para la tienda. Es seguro para la tienda, está documentado en la documentación del marco.

+0

¿Tiene tiempo para buscar el archivo de copia en la documentación de Xcode? Lo verás allí. Dice "La API copyfile() se introdujo en Mac OS X 10.5". ¿Esto significa que se garantiza que usar el encabezado /usr/include/copyfile.h sea MAS seguro? – Enchilada

Cuestiones relacionadas