2012-01-31 20 views
11

Un proveedor externo me ha proporcionado un marco para un accesorio de hardware de iPhone. Entonces tengo una carpeta como Device.framework. Dentro de esa carpeta hay un archivo binario y un conjunto de archivos .h. Hay instrucciones sobre cómo agregar esto a un proyecto de iOS y usar las clases que contiene. Sin embargo, en realidad estoy usando MonoTouch y quiero usar una biblioteca estática.¿Cómo crear una biblioteca estática de un marco existente en iOS?

¿Existe alguna manera de crear una biblioteca estática que haga que todas las clases del marco estén disponibles en la biblioteca estática? Entonces, en mi proyecto MonoTouch me vincularía en la biblioteca estática y tendré acceso a ese marco.

Respuesta

12

A * .framework es simplemente un paquete que contiene: la biblioteca estática, encabezados, metadatos asociados. Copie y pegue .framework y extraiga el archivo estático * .a y los archivos de encabezado relacionados.

Luego, es simplemente una cuestión de utilizar la herramienta bTouch de MonoTouch para enlazar la biblioteca estática para usar en su proyecto MonoTouch. Hay un gran ejemplo de cómo enlazar una biblioteca nativa a MonoTouch en Github. Con la guía en la orientación simulador + dispositivo y el uso del atributo LinkWith para incrustar la biblioteca estática en un solo * .dll:

Además, asegúrese de revisar la documentación de referencia btouch aquí:

+0

He aceptado ésta como la respuesta simplemente porque tiene el enlace al BindingSample que fue útil. Gracias a los dos chicos por tomarse el tiempo para responder al –

+0

@JWB con su último voto activo (el mío ;-) ahora tiene suficientes puntos de reputación para recitar ambas respuestas :-) – poupou

7

Cambie el nombre de ese archivo binario a Device.a. Puedes hacerlo, ya que el marco que mencionas no lo hace Apple, por lo tanto, tiene que ser una biblioteca estática y no una dinámica.

Asegúrate de que tu proyecto vincule esa biblioteca (Device.a).

Incluya los encabezados en su proyecto y consúltelos cuando corresponda.

+3

me cambió el nombre del archivo como usted sugiere y lo hicieron 'nm filename.a' y de hecho puedo ver todas las clases allí. Tendré que trabajar más para comprobar que todo se cuelga correctamente, pero se ve bien. Gracias –

+0

¡Guau, trivia útil que no sabía! – jstedfast

Cuestiones relacionadas