Freigeben über


Erste Schritte mit Objective Sharpie

Wichtig

Objective Sharpie ist ein Tool für erfahrene Xamarin-Entwickler mit fortgeschrittenen Kenntnissen Objective-C von (und als Erweiterung C). Bevor Sie versuchen, eine Objective-C Bibliothek zu binden, sollten Sie über fundierte Kenntnisse zum Erstellen der nativen Bibliothek in der Befehlszeile verfügen (und ein gutes Verständnis der Funktionsweise der nativen Bibliothek haben).

Installieren von Objective Sharpie

Objective Sharpie ist derzeit ein eigenständiges Befehlszeilentool für Mac OS X 10.10 und höher und ist kein vollständig unterstütztes Xamarin-Produkt. Es sollte nur von fortgeschrittenen Entwicklern verwendet werden, um beim Erstellen eines Bindungsprojekts an eine Drittanbieterbibliothek Objective-C zu helfen.

Objective Sharpie kann als Standardinstallationsprogramm für OS X-Pakete heruntergeladen werden. Führen Sie das Installationsprogramm aus, und befolgen Sie alle Bildschirmaufforderungen des Installations-Assistenten:

Tipp

Verwenden Sie den sharpie update Befehl, um auf die neueste Version zu aktualisieren.

Grundlegende exemplarische Vorgehensweise

Objective Sharpie ist ein von Xamarin bereitgestelltes Befehlszeilentool, das beim Erstellen der Definitionen unterstützt, die zum Binden einer Drittanbieterbibliothek Objective-C an C# erforderlich sind. Selbst bei Verwendung von Objective Sharpie muss der Entwickler die generierten Dateien ändern, nachdem Objective Sharpie abgeschlossen ist , um alle Probleme zu beheben, die nicht automatisch vom Tool behandelt werden konnten.

Nach Möglichkeit kommentiert Objective Sharpie APIs, mit denen es Zweifel an der richtigen Bindung hat (viele Konstrukte im nativen Code sind mehrdeutig). Diese Anmerkungen werden als [Verify] Attribute angezeigt.

Die Ausgabe von Objective Sharpie ist ein Paar von Dateien - ApiDefinition.cs und StructsAndEnums.cs -, die verwendet werden können, um ein Bindungsprojekt zu erstellen, das in eine Bibliothek kompiliert wird, die Sie in Xamarin-Apps verwenden können.

Wichtig

Objective Sharpie verfügt über eine wichtige Regel für die ordnungsgemäße Verwendung: Sie müssen unbedingt die richtigen Befehlszeilenargumente für den Clang-Compiler übergeben, um eine ordnungsgemäße Analyse sicherzustellen. Dies liegt daran, dass die Objective Sharpie-Analysephase einfach ein Tool ist, das für die clang libtooling-API implementiert wird.

Dies bedeutet, dass Objective Sharpie die volle Leistungsfähigkeit von Clang (der C/Objective-C/C++-Compiler, der tatsächlich die native Bibliothek kompiliert, die Sie binden würden) und über all sein internes Wissen über die Headerdateien für die Bindung verfügt. Anstatt die analysierte AST in Objektcode zu übersetzen, übersetzt Objective Sharpie die AST in ein C#-Bindungsgerüst, das für die Eingabe in die bmacbtouch Und Xamarin-Bindungstools geeignet ist.

Wenn Objective Sharpie während der Analyse fehlert, bedeutet dies, dass clang während der Analysephase beim Erstellen des AST einen Fehler aufgetreten ist, und Sie müssen herausfinden, warum.

NEU! Die Versuche der Version 3.0 beheben einen Teil dieser Komplexität, indem sie Xcode-Projekte direkt unterstützen. Wenn eine native Bibliothek über ein gültiges Xcode-Projekt verfügt, kann Objective Sharpie das Projekt für ein angegebenes Ziel und eine angegebene Konfiguration auswerten, um die erforderlichen Eingabeheaderdateien und Compilerflags abzuleiten.

Wenn kein Xcode-Projekt verfügbar ist, müssen Sie mit dem Projekt vertraut sein, indem Sie die richtigen Eingabeheaderdateien, Headerdateisuchpfade und andere erforderliche Compilerflags ableiten. Es ist wichtig zu beachten, dass die Compilerflags, die zum Erstellen der nativen Bibliothek verwendet werden, identisch sind, die an Objective Sharpie übergeben werden müssen. Dies ist ein manueller Prozess, der ein wenig Vertrautheit mit dem Kompilieren von nativem Code in der Befehlszeile mit der Clang-Toolkette erfordert.