2012-01-31 85 views
11

我已经为第三方供应商提供了iPhone硬件附件的框架。所以我有一个像Device.framework这样的文件夹。该文件夹内是一个二进制文件和一组.h文件。有关于如何将其添加到iOS项目并使用其中包含的类的说明。但是,我实际上使用MonoTouch并希望使用静态库。如何从iOS中的现有框架创建静态库?

有没有办法创建一个静态库,使静态库中的框架中的所有类都可用?因此,在我的MonoTouch项目中,我将链接到静态库并访问该框架。

回答

12

A * .framework只是一个包含以下内容的包:静态库,头文件,关联的元数据。复制并粘贴.framework并提取静态* .a文件和相关头文件。

然后,只需使用MonoTouch btouch工具将静态库绑定到您的MonoTouch项目中即可。如何将本机库绑定到Github上的MonoTouch,有一个很好的例子。随着瞄准模拟器+设备,并使用LinkWith属性嵌入静态库在单一的* .dll指导:

此外,请务必在这里检查出btouch参考文档:

+0

我接受这一个作为答案,因为它有链接到BindingSample这是有用的。感谢这两个人花时间回复 – 2012-01-31 23:10:00

+0

@JWB与你最新的upvote(我的;-)你现在有足够的声望点upvote两个答案:-) – poupou 2012-02-01 01:22:35

7

将该二进制文件重命名为Device.a。你可以这样做,因为你提到的框架不是由Apple完成的,因此它必须是一个静态库,而不是一个动态库。

确保您的项目链接该库(Device.a)。

将标题包含在您的项目中并在适当的地方引用它们。

+3

我重命名的文件如你所说,做'nm filename.a',我确实可以看到那里的所有类。我需要做进一步的工作来检查它是否正确地挂在一起,但它看起来不错。谢谢 – 2012-01-31 23:02:56

+0

哇,我不知道的有用的琐事! – jstedfast 2012-02-01 02:15:11