2016-04-10 1 views
1

Ich habe eine iOS statische Bibliothek (.a und Header-Datei), möchte ich diese Bibliothek Xamarin.iOSWie erstelle ich Bindungen für Xamarin.iOS?

ich die Bindungsschritte gefunden binden erwähnen auf Xamarin Website here und in dieser exemplarischen Vorgehensweise verwenden sie den Quellcode Bibliothek. Aber ich habe nur .a Datei und Header-Datei.

Ist es möglich, die statische Bibliothek ohne den Quellcode zu binden?

+1

Der Leitfaden nur die Quellen verwenden die '.a'-Datei zu erstellen. Der Rest wird mit den Headern und der Binärdatei erledigt. Objektiver Sharpie benötigt nur die Header. –

+0

Wenn Sie diesen Link lesen, beginnen sie mit der Quelle, um die Bibliothek zu erstellen, und binden dann diese Bibliothek. Der Link sagt alles, was Sie wissen müssen, Sie müssen nur auf halbem Wege beginnen. – JimBobBennett

Antwort

1

Sie benötigen den Quellcode nicht, um mit Objective Sharpie zu binden. Sie benötigen lediglich die Bibliothek .a und die Header.

Hier ist ein Beispiel:

sharpie bind -output Binding -sdk iphoneos8.1 \ 
-scope build/Headers build/Headers/SomeHeader.h \ 
-c -Ibuild/Headers -arch arm64 

Ziel Sharpie nur Ausgabe zwei Dateien: Binding/ApiDefinitions.cs und Binding/StructsAndEnums.cs.

Dann optimieren Sie die Bindungen wie benötigt und erneut ausgeführt.

Sobald die Optimierungen abgeschlossen sind, können diese beiden Dateien nun zu einem Bindungsprojekt in Xamarin Studio hinzugefügt oder direkt an die Tools touch (iOS) oder mac (MacOS X) übergeben werden, um die endgültige Bindung zu erstellen.

1

Ja, das ist möglich über Objective Sharpie (https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/)

Ziel Sharpie verwendet clang Header-Dateien zu analysieren, die Definitionen Qualität API erzeugt. Für die Dinge, die Objective Sharpie nicht analysieren/generieren kann, musst du dich selbst normalisieren. Diese generierten Dateien sind als ApiDefinition.cs und StructsAndEnums.cs bekannt.

Um dies zu erreichen, können Sie den Befehl sharpie bind verwenden.

https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/#Using_Objective_Sharpie

Sobald Sie die entsprechenden Template/Gerüst generiert haben, können Sie dann diese Elemente in die bmac/btouch Bindungs ​​Tooling passieren, die die Bindung für Ihre Plattform (Mac/iOS respekt) generieren.

Wenn Sie laufen immer noch in Schwierigkeiten, es ist ein fortschrittliches Beispiel hier, die auch helfen sollen:

https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/examples/advanced/