Creación de enlaces con Objective Sharpie

En esta sección se proporciona una introducción a Objective Sharpie, la herramienta de línea de comandos de Xamarin que se usa para automatizar el proceso de creación de un enlace a una biblioteca Objective-C

Información general

Objective Sharpie es una herramienta de línea de comandos que facilita el arranque del primer paso de un enlace. Funciona mediante el análisis de los archivos de encabezado de una biblioteca nativa para asignar la API pública a la definición de enlace (un proceso que previamente se ha realizado de forma manual).

Objective Sharpie usa Clang para analizar los archivos de encabezado, por lo que el enlace es lo más exacto y exhaustivo posible. Esto puede reducir considerablemente el tiempo y el esfuerzo que se tarda en generar un enlace de calidad.

Importante

Objective Sharpie es una herramienta para desarrolladores experimentados de Xamarin con conocimientos avanzados de Objective-C (y, por extensión, de C). Antes de intentar enlazar una biblioteca Objective-C, debe tener conocimientos sólidos sobre cómo compilar la biblioteca nativa en la línea de comandos (y comprender cómo funciona la biblioteca nativa).

Historial

Objective Sharpie ha evolucionado y se ha usado internamente en Xamarin durante los últimos tres años. Como consecuencia de la potencia de Objective Sharpie, las API introducidas en Xamarin.iOS y Xamarin.Mac desde iOS 8, Mac OS X 10.10 y watchOS 2.0 se han arrancado completamente con Objective Sharpie. Xamarin se basa en gran medida en Objective Sharpie internamente para crear sus propios productos.

Pero Objective Sharpie es una herramienta muy avanzada para la que se necesitan conocimientos avanzados de Objective-C y C, cómo usar el compilador clang en la línea de comandos y, por lo general, cómo se combinan las bibliotecas nativas. Debido a este listón tan alto, creemos que tener un asistente de GUI establece las expectativas incorrectas y, por tanto, actualmente Objective Sharpie solo está disponible como una herramienta de línea de comandos.