2016-04-12 12 views
2

Ich versuche eine Xamarin.iOS Bindung zu aktualisieren, die auf Code zeigt, den ich verwalte, und ich habe jetzt Probleme, dass ich eine externe .a Bibliotheksreferenz durch eine ersetzt habe. Rahmen. Insbesondere wenn ich versuche, meine Bindung zu kompilieren, schlägt die native Verknüpfung für die Bibliothek fehl, die ich ersetzt habe.Xamarin.iOS Bindung mit Framework von Drittanbietern

Native linking error: framework not found SVGKit for architecture arm64/i386/armv7/armv7s (MT5209) 

Ich weiß für eine Tatsache, dass SVGKit diese Architekturen unterstützt, aber ich bin nicht sicher, wie sie in den erzeugten binären aufzunehmen, wenn sie von einem .framework verweisen.

Antwort

3

Hallo ich dies tun würde, die Frage

Erster zu diagnostizieren Ich würde überprüfen, ob SVGKit.framework/SVGKit ist eine gefälschter Rahmen (statische Bibliothek als Rahmen verkleidet) oder einen dynamischen (iOS 8+ Unterstützung nur) Verwendung des file Befehl auf dem binären

file Foo.framework/Foo 
Foo.framework/Foo: Mach-O universal binary with 4 architectures 
Foo.framework/Foo (for architecture i386): Mach-O dynamically linked shared library i386 
Foo.framework/Foo (for architecture x86_64):Mach-O 64-bit dynamically linked shared library x86_64 
Foo.framework/Foo (for architecture armv7): Mach-O dynamically linked shared library arm 
Foo.framework/Foo (for architecture arm64): Mach-O 64-bit dynamically linked shared library 

file Bar.framework/Bar 
Bar.framework/Bar: Mach-O universal binary with 4 architectures 
Bar.framework/Bar (for architecture armv7): current ar archive random library 
Bar.framework/Bar (for architecture i386): current ar archive random library 
Bar.framework/Bar (for architecture x86_64):current ar archive random library 
Bar.framework/Bar (for architecture arm64): current ar archive random library 

Foo ist eine dynamische Bibliothek, bemerken die Mach-OBar und ist eine statische Bibliothek als fr verkleidet amework beachten Sie die ar

Nun, wenn es ein gefälschte Rahmen (statische Bibliothek) ist einfach und die SVGKit.framework/SVGKit binäre und benennen Sie sie in SVGKit.a und fügen Sie es zu Ihrer verbindlichen Projekt, sollte es funktionieren wie gewohnt

Wenn es ist ein Dynamische Rahmen dann diese instructions on how to do it folgen [0]

[0]. Nur ein kleiner Hinweis, sobald 6.0 Xamarin Studio ist out Sie nicht manuell die Bindung Projekt .csproj Datei ändern müssen wird, werden Sie in der Lage sein, es innerhalb der tun IDE selbst :)

+0

Vielen Dank für das Feedback. Ich habe getan, wie vorgeschlagen und festgestellt, dass es ein dynamischer Rahmen war. Ich folgte dann den Anweisungen und fügte der CSProj-Datei der Bindung ein Element mit einem .. \ .. \ relativen \ Pfad zum Framework hinzu. Derselbe Fehler beim Build. Auch keine Notiz von dem Framework irgendwo im Build-Protokoll vor dem Fehler. –

+0

mmm komisch, du könntest dir ein Projekt anschauen, an dem ich mitarbeite und hier arbeite https://github.com/PSPDFKit/Xamarin-iOS/blob/master/PSPDFKit.iOS/PSPDFKit.iOS.csproj#L52-L54 und sehen, ob es für Sie funktioniert, es verwendet auch ein dynamisches Framework. Lassen Sie mich wissen, ob das für Sie funktioniert. Auch wenn Sie Ihr Projekt irgendwo teilen oder haben (d. H. GitHub), kann ich es mir ansehen :) – dalexsoto

Verwandte Themen