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

Posted

技术标签:

【中文标题】Xamarin.iOS 与第三方框架的绑定【英文标题】:Xamarin.iOS binding with third party framework 【发布时间】:2016-04-12 21:29:53 【问题描述】:

我正在尝试更新指向我管理的代码的 Xamarin.ios 绑定,现在我遇到了麻烦,因为我已将外部 .a 库引用替换为 .framework。特别是,当我尝试编译绑定时,我替换的库的本地链接失败。

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

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

【问题讨论】:

【参考方案1】:

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

首先我会使用二进制文件上的file 命令

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 并将其添加到您的绑定项目中,它应该可以正常工作

如果是动态框架,请按照这些instructions on how to do it.[0]

[0]:附带说明一下,一旦 Xamarin Studio 6.0 发布,您将无需手动修改绑定项目 .csproj 文件,您将能够在 IDE 本身内完成:)

【讨论】:

感谢您的反馈。我已按照建议完成并确定它是一个动态框架。然后我按照说明,将一个元素添加到绑定的 CSProj 文件中,并带有 ..\..\relative\path 到框架。但是,同样的构建错误。此外,在错误之前的构建日志中的任何地方都没有注意到框架。 嗯,奇怪,你可以看看我参与的一个项目,并在这里工作github.com/PSPDFKit/Xamarin-iOS/blob/master/PSPDFKit.iOS/…,看看它是否适合你,它也使用了一个动态框架。让我知道这是否适合你。另外,如果您在某个地方(即 github)分享或拥有您的项目,我可以看看 :)

以上是关于Xamarin.iOS 与第三方框架的绑定的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.iOS CocoaPods基本使用

Xamarin.ios的SMS第三方平台[关闭]

Xamarin.ios引用第三方SDK

从 Xamarin.iOS 绑定库中引用 Storyboard

javaEE SSH框架 qq第三方登录及用户绑定

拼多多怎样绑定第三方平台?