繁体   English   中英

Xamarin.iOS与第三方框架的绑定

[英]Xamarin.iOS binding with third party framework

我正在尝试更新Xamarin.iOS绑定,该绑定指向我管理的代码,而现在我用.framework替换了外部.a库引用时遇到了麻烦。 特别是,当我尝试编译绑定时,对于我替换的库,本机链接失败。

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

我知道SVGKit支持这些架构,但是我不确定从.framework引用时如何将它们包括在生成的二进制文件中。

您好,我会这样做来诊断问题

首先,我将使用二进制file上的file命令检查SVGKit.framework/SVGKit假框架 (伪装成框架的静态库)还是动态框架( 仅iOS 8+支持 )。

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是动态库,请注意Mach-OBar是伪装成框架的静态库,请注意ar

现在,如果它是伪造的框架 (静态库),只需获取SVGKit.framework/SVGKit二进制文件并将其重命名为SVGKit.a并将其添加到您的绑定项目中,它应该可以照常工作

如果它是动态框架,请按照以下说明进行操作 。[0]

[0]:附带一提,一旦Xamarin Studio 6.0推出,您将不需要手动修改绑定项目.csproj文件,就可以在IDE本身中完成它:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM