Partager via


Création de liaisons avec Objective Sharpie

Cette section fournit une introduction à Objective Sharpie, l’outil en ligne de commande de Xamarin utilisé pour automatiser le processus de création d’une liaison à une Objective-C bibliothèque

Vue d’ensemble

Objective Sharpie est un outil en ligne de commande pour aider à démarrer la première passe d’une liaison. Il fonctionne en analysant les fichiers d’en-tête d’une bibliothèque native pour mapper l’API publique dans la définition de liaison (processus précédemment effectué manuellement).

Objective Sharpie utilise Clang pour analyser les fichiers d’en-tête, de sorte que la liaison est aussi exacte et complète que possible. Cela peut réduire considérablement le temps et l’effort nécessaire pour produire une liaison de qualité.

Important

Objective Sharpie est un outil pour les développeurs Xamarin expérimentés disposant d’une connaissance avancée ( Objective-C et par extension, C). Avant de tenter de lier une Objective-C bibliothèque, vous devez avoir une solide connaissance de la façon de créer la bibliothèque native sur la ligne de commande (et une bonne compréhension du fonctionnement de la bibliothèque native).

Historique

Nous avons évolué et nous utilisons Objective Sharpie en interne à Xamarin depuis trois ans. Comme un témoignage de la puissance de Objective Sharpie, les API introduites dans Xamarin.iOS et Xamarin.Mac depuis iOS 8, Mac OS X 10.10 et watchOS 2.0 ont été entièrement démarrées avec Objective Sharpie. Xamarin s’appuie fortement sur Objective Sharpie en interne pour la création de ses propres produits.

Cependant, Objective Sharpie est un outil très avancé qui nécessite des connaissances avancées sur Objective-C et C, comment utiliser le compilateur clang sur la ligne de commande et généralement la façon dont les bibliothèques natives sont regroupées. En raison de cette barre haute, nous avons estimé que l’utilisation d’un Assistant GUI définit les attentes incorrectes et, par conséquent, Objective Sharpie n’est actuellement disponible qu’en tant qu’outil en ligne de commande.