Как создать привязку MonoTouch из .framework

Я загрузил TouchDB, "легкий механизм баз данных Apache CouchDB, подходящий для внедрения в мобильные или настольные приложения", что дает мне кучу папок .framework (CouchCocoa.framework, TouchDB.framework и TouchDBListener.framework).

Я читал статью о привязке библиотек Obj-C к MonoTouch, она показывает как связать .a, но не как связать .framework.

Как создать привязку для этих .framework? или я должен каким-то образом сделать .a этих .framework перед их использованием (если это возможно)?

- EDIT -

related: https://bitbucket.org/LouisBoux/touchdb-monotouchbinding

Ответы

Ответ 1

Вы можете использовать файлы .framework так же, как файлы .a. Например. все привязки, предоставляемые MonoTouch (в monotouch.dll), сделаны из файлов .framework.

Ответ 2

Привязать .framework в MonoTouch выполняет несколько шагов. framework - это каталог, в котором обычно хранятся все части библиотечного пакета (например, файлы заголовков, ресурсы и файл библиотеки). Ниже приведены общие шаги, необходимые для привязки .framework.

  • Создайте проект привязок, например, для обычного файла библиотеки (libXXX.a)

  • эквивалент библиотеки в .framework - это файл без расширения, который находится в корне каталога .framework, например, я недавно написал привязки для RDPDFKit.framework, файлом верхнего уровня был файл с именем RDPDFKit (без расширения), переименуйте это в "libRDPDFKit.a" и скопируйте в проект привязки и добавьте его в проект. Он создаст код за файлом с поддерживаемыми платформами (например, x86, arm6 и т.д.). Вся документация для этого находится на веб-сайте Xamarin.

  • Определите привязки, как для обычной библиотеки.

  • Если в фреймворке есть .bundle, скопируйте его в проект программы (а не проект привязки), его нужно будет добавить в качестве ресурсов для программы. Добавьте этот каталог в проект и все элементы под ним, потому что ресурсы в monotouch не поддерживаются в DLL.

  • В результате DLL файл с привязкой к monotouch будет содержать весь файл .a для последующей компоновки, поэтому вам не понадобится файл .a после создания .dll.