【问题标题】:How to create a MonoTouch binding from a .framework如何从 .framework 创建 MonoTouch 绑定
【发布时间】:2012-05-14 15:26:37
【问题描述】:

我下载了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 进行绑定?或者我应该在使用它们之前以某种方式制作这些.framework.a(如果可能的话)?

--编辑--

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

【问题讨论】:

    标签: binding xamarin.ios couchdb couchcocoa


    【解决方案1】:

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

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

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

    • 像定义普通库一样定义绑定。

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

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

    【讨论】:

    • 文件平台后面的代码中没有生成任何内容是否正常?它只说 LinkWith、SmartLink、Forceload,但没有关于目标。
    【解决方案2】:

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

    【讨论】:

    • 好的,但是有没有办法让某种 [LinkWith](比如 .a 文件)和 .framework 一起使用,所以我不必使用 mtouch 参数手动进行链接?
    • 我没有将它与[LinkWith] 一起使用,但有一个关于它的错误报告@@bugzilla.xamarin.com/show_bug.cgi?id=2530
    • .framework 是一个目录,.a 文件是一个库。所以真的没有相关性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多