31 votos

Puede usted referencia Xib archivos de las bibliotecas estáticas en el iPhone?

En mi aplicación, actualmente tengo toda mi código separado en una biblioteca estática, para hacer más fácil para configurar el proyecto de xcode objetivos para la aplicación real y para pruebas unitarias de mi código. El problema con esto es que quiero poner más de mi xib archivos en la biblioteca estática así, pero parece que cuando ejecuto mi aplicación y vuelva a hacer referencia a la xib no puede encontrarlo, salvo que se incluya en la aplicación real del objetivo en lugar de la estática de la biblioteca de destino. Es posible tener xib archivos y otros recursos incluidos en las bibliotecas estáticas que se puede hacer referencia por el código en la misma biblioteca, y si es así, ¿cómo?

38voto

Justicle Puntos 6439

No, no es posible, porque una biblioteca estática no es el mismo como un "paquete".

Un paquete es un directorio que puede contener todo tipo de archivos, incluyendo archivos de recursos (xib), archivos ejecutables y bibliotecas estáticas. Existe en el sistema de archivos como un grupo de archivos individuales.

Una biblioteca estática es un único archivo que contiene las clases, código y variables que estaban vinculados juntos por la biblioteca creador. No "contener" a otros archivos, es esencialmente una base de datos de código compilado.

Aunque sería posible poner los datos de la xibs allí, Xcode no tendría forma de saber que estaba allí, como se ve por ellos como archivos individuales en el sistema de archivos.

En Mac OS, puede crear un "Marco", que es esencialmente un paquete de código, los recursos, ajustes, etc que pueden ser reutilizados en varios proyectos. Sin embargo, Apple no parece admitir el establecimiento del marco para el iPhone OS.

Paquetes http://developer.apple.com/iphone/library/documentation/CoreFoundation/Conceptual/CFBundles/CFBundles.html

Las Bibliotecas Estáticas http://en.wikipedia.org/wiki/Static_library

14voto

Justicle Puntos 6439

Respuesta a comentario (que no caben en la caja de comentarios)

No se preocupe, yo he estado tratando de hacer casi lo mismo como para el de la semana pasada - me gustaría enviar un "marco" de xibs, incluir archivos y .un libs a un cliente sin que se les da todo el código fuente. No pude encontrar una buena manera de hacer esto con paquetes.

Por la razón que fuere, Apple están siendo especialmente obtuso acerca de esto - yo no puedo ver una razón para ser así en el caso de las bibliotecas estáticas (librerías dinámicas justo lo suficiente).

Mi solución por ahora es crear manualmente una carpeta de paquete "Foo", que contiene las siguientes subcarpetas:

  1. "incluir" -> colocar .h archivos aquí
  2. "res" -> colocar .xib archivos aquí
  3. "lib" -> contiene "iphoneos" & "iphonesimulator" subcarpetas, cada una con libFoo.un

Luego postal y enviar al cliente. A continuación, el cliente:

  1. Se baja la cremallera del paquete donde ellas quieran.
  2. Agrega la "res" carpeta en el grupo de recursos.
  3. Cambia el destino siguiente configuración:
    Otros Enlazador = -Objc-lfoo
    Encabezado de Rutas de Búsqueda = /include
    Biblioteca de Rutas de Búsqueda = /lib/$(PLATFORM_NAME)

Yo, probablemente, puede automatizar la creación del paquete con algunos pasos de generación en mi final, pero el cliente está pegado con cuatro ligeramente incómoda pasos para ponerse en marcha.

4voto

Ronen Morecki Puntos 331

He encontrado una solución perfecta para este que hace todo lo anterior de forma automática y más https://github.com/kstenerud/iOS-Universal-Framework Se trata de un plugin de xCode

A mí me funcionó como un encanto, Sólo funciona con XCode 4 y por encima de

2voto

Tushar Vengurlekar Puntos 3169

Sí, sí puede. agregar un archivo xib en su biblioteca como lo haría para cualquier proyecto normal. A continuación, en el proyecto de la biblioteca de destino agregar el archivo xib en copiar los Archivos de la sección a lo largo de con .un archivo. En su principal proyecto en el que se utiliza la biblioteca, arrastre y suelte el archivo xib donde .un archivo de biblioteca se encuentra.

0voto

Ivan Vučica Puntos 5418

A la hora de distribuir también podría crear un SDK. JSON.marco hizo esto en su SVN, y yo replicado con éxito este. Usted puede ver cómo esto se ha hecho en http://hltypes.svn.sf.net/ en el hltypes-ios.xcodeproj y el iOS carpeta en el proyecto.

Principalmente es necesario "instalar" en la construcción de la carpeta, y entonces usted necesita para copiar el formato especial SDKSettings.plist. A continuación, agregue la ruta de acceso al SDK en "Sdk Adicionales" de la lista en el proyecto de aplicación. Desventaja de los compuestos Sdk son la necesidad de reiniciar el Xcode 3.x siempre este mini-SDK se actualiza, y Xcode insistencia en la construcción de un compuesto SDK creado a partir de Apple SDK base y su mini-SDK (lo que significa que tendrás que esperar un poco).

Proyecto de aplicación todavía necesita tener .xib y otros recursos añadidos manualmente.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X