1

我在 Objective-C 中有一个库,我想在 monotouch(xamarin 工作室)中绑定它。该库正在使用我从第三方供应商处下载的框架(“Firebase”框架)。我编译了这个库,它在 XCode 上构建得很好,然后为 i386 和 armv7 架构创建了 .a 文件,并使用 lipo 生成了我的 lib.a 文件。现在,我创建了一个绑定项目,并将我的 .a 文件添加到其中,从而生成了一个 .linkwith.cs 文件。但是,当我使用绑定项目时,它给出了以下错误:

“ld:找不到框架 Firebase”

我的问题是 - 如何指定 Firebase 框架?我试过这个:

[assembly: LinkWith ("libtestfirebaseclient.a", LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks = "CFNetwork Security Foundation Firebase")] 

然而,问题似乎仍然没有得到解决。有人能告诉我如何为依赖于第三方框架的 obj-c 库创建绑定吗?

4

2 回答 2

2

您可能不需要将其Firebase作为平台进行引用,而是(如果它不包含在 中libtestfirebaseclient.a)为其添加一个新的 LinkWith 属性:

[assembly: LinkWith ("libtestfirebaseclient.a", LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks = "CFNetwork Security Foundation")]
[assembly: LinkWith ("libfirebase.a", LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks = "CFNetwork Security Foundation")]
于 2013-03-07T08:19:09.527 回答
1

我建议确保您已完成所有必要的过程,例如完成 ApiDefinition.cs 文件并在 StructsAndEnums.cs 文件中定义所有必要的枚举等。另外,我很确定您不需要在 LinkWith Frameworks 部分中包含 Firebase。

在我看来,解决这个问题的最好方法是查看已绑定在 monotouch-bindings 存储库中的现有库,并准确了解需要如何布置所有内容。下载一个已经绑定好的库,看看每个东西是如何对应的,对自己的项目也一样。

Xamarin 的网站上有关于绑定 Objective-C 库的详细指南以及作为参考的绑定类型参考指南

于 2013-03-06T21:45:11.470 回答