如何从.framework创建MonoTouch绑定

时间:2012-05-14 15:26:37

标签: binding xamarin.ios couchdb couchcocoa

我下载了TouchDB,一个“适合嵌入移动或桌面应用程序的轻量级Apache CouchDB兼容数据库引擎”,它为我提供了一堆.framework个文件夹(CouchCocoa.framework,TouchDB.framework)和TouchDBListener.framework)。

我一直在阅读article on binding Obj-C libraries to MonoTouch,它显示how to bind a .a,但不是如何绑定.framework

如何为这些.framework制作绑定?或者我应该在使用它们之前以某种方式制作.a这些.framework(如果可能的话)?

- 编辑 -

相关:https://bitbucket.org/LouisBoux/touchdb-monotouchbinding

2 个答案:

答案 0 :(得分:27)

在MonoTouch中绑定.framework需要几个步骤,.framework是一个通常包含库包的所有部分的目录(例如,头文件,资源和库文件)。以下是绑定.framework所需的一般步骤。

  • 像创建普通库文件一样创建绑定项目(libXXX.a)

  • .framework中的库等效文件是没有扩展名的文件,位于.framework目录的根目录下,例如我最近为RDPDFKit.framework编写了绑定,顶级文件是名为RDPDFKit的文件(没有扩展名),将其重命名为“libRDPDFKit.a”并复制到您的绑定项目并将其添加到项目中。它将使用支持的平台(例如,x86,arm6等)创建一个代码隐藏文件。所有文档都在Xamarin的网站上。

  • 定义绑定,就像使用普通库一样。

  • 如果框架有.bundle,将其复制到程序项目(而不是绑定项目),则需要将其作为程序的资源添加。将此目录添加到项目及其下的所有项目,这是因为DLL中不支持monotouch中的资源。

  • 生成的monotouch绑定DLL将包含整个.a文件以供以后链接,因此在构建.dll后不需要.a文件。

答案 1 :(得分:3)

您可以像.framework文件一样使用.a文件。例如。 MonoTouch提供的所有绑定(在monotouch.dll中)都是由.framework个文件组成的。