Freigeben über


Erstellen von Bindungen mit Objective Sharpie

Dieser Abschnitt enthält eine Einführung in Objective Sharpie, ein Befehlszeilentool von Xamarin zum Automatisieren der Erstellung einer Bindung an eine Objective-C-Bibliothek.

Überblick

Objective Sharpie ist ein Befehlszeilentool, das ihnen hilft, den ersten Durchgang einer Bindung zu bootstrappen. Es analysiert die Headerdateien einer nativen Bibliothek, um die öffentliche API in der Bindungsdefinition zuzuordnen (ein Prozess, der bisher manuell durchgeführt wurde).

Objective Sharpie verwendet Clang, um Headerdateien zu analysieren, damit die Bindung so genau und gründlich wie möglich ist. Dies kann die Zeit und den Aufwand, die zum Erstellen einer Qualitätsbindung erforderlich sind, deutlich reduzieren.

Wichtig

Objective Sharpie ist ein Tool für erfahrene Xamarin-Entwickler mit fortgeschrittenen Kenntnissen in Objective-C (und damit auch C). Bevor Sie versuchen, eine Objective-C-Bibliothek zu binden, sollten Sie fundierte Kenntnisse darüber haben, wie die native Bibliothek in der Befehlszeile erstellt wird (und ein gutes Verständnis für die Funktionsweise der nativen Bibliothek).

Verlauf

Wir haben Objective Sharpie in den letzten drei Jahren intern bei Xamarin weiterentwickelt und verwendet. Als Nachweis für die Leistungsfähigkeit von Objective Sharpie wurde der Bootstrap für APIs, die seit iOS 8, Mac OS X 10.10 und watchOS 2.0 in Xamarin.iOS und Xamarin.Mac eingeführt wurden, vollständig mit Objective Sharpie durchgeführt. Xamarin verlässt sich bei der Erstellung eigener Produkte intern stark auf Objective Sharpie.

Objective Sharpie ist jedoch ein sehr fortgeschrittenes Tool, das fortgeschrittene Kenntnisse über Objective-C und C, die Verwendung des Clang-Compilers in der Befehlszeile und allgemein über die Zusammenstellung nativer Bibliotheken erfordert. Aufgrund dieser hohen Anforderungen waren wir der Meinung, dass ein GUI-Assistent die falschen Erwartungen weckt, und so ist Objective Sharpie derzeit nur als Befehlszeilentool verfügbar.