Как создать статическую библиотеку из существующего фреймворка в iOS? - PullRequest
15 голосов
/ 31 января 2012

Сторонний поставщик предоставил мне фреймворк для аппаратного аксессуара iPhone.Поэтому у меня есть папка вроде Device.framework.Внутри этой папки находится бинарный файл и набор файлов .h.Есть инструкции, как добавить это в проект iOS и использовать классы, содержащиеся в нем.Однако на самом деле я использую MonoTouch и хочу использовать статическую библиотеку.

Есть ли способ создать статическую библиотеку, которая делает все классы из инфраструктуры доступными в статической библиотеке?Так что в моем проекте MonoTouch я бы связал статическую библиотеку и имел доступ к этой платформе.

Ответы [ 2 ]

13 голосов
/ 31 января 2012

A * .framework - это просто пакет, содержащий статическую библиотеку, заголовки, связанные метаданные. Скопируйте и вставьте .framework и извлеките статический файл * .a и связанные с ним заголовочные файлы.

Тогда это просто вопрос использования инструмента MonoTouch btouch для привязки статической библиотеки для использования в вашем проекте MonoTouch. Есть отличный пример того, как привязать нативную библиотеку к MonoTouch на Github. С руководством по нацеливанию на симулятор + устройство и использованием атрибута LinkWith для встраивания статической библиотеки в одну * .dll:

Также обязательно ознакомьтесь со справочной документацией btouch здесь:

8 голосов
/ 31 января 2012

Переименуйте этот двоичный файл в Device.a. Вы можете сделать это, так как упомянутая вами структура не сделана Apple, поэтому она должна быть статической, а не динамической библиотекой.

Убедитесь, что ваш проект связывает эту библиотеку (Device.a).

Включите заголовки в ваш проект и, при необходимости, сделайте ссылки на них.

...