Как создать статическую библиотеку из существующей структуры в iOS?

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

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

Ответы

Ответ 1

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

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

Кроме того, ознакомьтесь с справочной документацией btouch здесь:

Ответ 2

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

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

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