Pregunta

En mi aplicación, Actualmente tengo toda mi código separado en una biblioteca estática, para que sea más fácil para establecer los objetivos del proyecto Xcode para la aplicación actual y para las pruebas unitarias para mi código. El problema con esto es que quiero poner la mayor parte de mis archivos xib en la biblioteca estática, así, pero parece que cuando ejecuto mi aplicación y trato de hacer referencia a la xib no puede encontrarlo a menos que se incluye en el real el objetivo de aplicación en lugar del objetivo biblioteca estática. ¿Es posible tener archivos xib y otros recursos incluidos en las bibliotecas estáticas que pueden ser referenciados por el código en esa misma biblioteca, y si es así, ¿cómo?

¿Fue útil?

Solución

No, no es posible, debido a que una biblioteca estática no es lo mismo que 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, el código y las variables que estaban vinculados entre sí por el creador de la biblioteca. No "contener" otros archivos, es esencialmente una base de datos de código compilado.

A pesar de que sería posible poner los datos de los xibs de 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 conjunto de códigos, recursos, configuraciones, etc, que pueden ser reutilizados por varios proyectos. Sin embargo, Apple no parece apoyar la creación de marco a medida para iPhone OS.

Paquetes https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1

Las bibliotecas estáticas http://en.wikipedia.org/wiki/Static_library

Otros consejos

Responder al comentario (no cabrá en la caja de comentario)

No se preocupe, me han estado tratando de hacer más o menos lo mismo que por la última semana - Me gustaría enviar un "marco" de xibs, incluyen archivos y bibliotecas .a a un cliente sin darles todo el código fuente. No pude encontrar una buena manera de hacer esto con haces bien.

Por alguna razón, Apple está siendo especialmente obtuso sobre esto -. Yo no veo una razón para que sean lo que en el caso de las bibliotecas estáticas (librerías dinámicas suficiente)

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

  1. "incluir" -> poner .h archivos aquí
  2. "res" -> poner .xib archivos aquí
  3. "lib" -> "contiene" iPhoneOS y subcarpetas "iphonesimulator" cada uno con libfoo.a

A continuación, zip esto y enviar al cliente. El cliente entonces:

  1. descomprime el paquete donde quiera que les gusta.
  2. Añade la carpeta "res" en el grupo de recursos.
  3. Cambia la configuración siguiente objetivo:
    Otras banderas Linker = -ObjC -lfoo
    Rutas de búsqueda de cabecera = / include
    Biblioteca de rutas de búsqueda = / lib / $ (PLATFORM_NAME) guía

es probable que pueda automatizar la creación de paquetes con algunos pasos de generación en mi final, pero el cliente está pegado con cuatro pasos poco más incómoda para ponerse en marcha.

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 Su un plugin xCode

A mí me funcionó a las mil maravillas, Funciona sólo para XCode 4 y superior

Sí se puede. añadir un archivo xib en su biblioteca como lo haría para cualquier proyecto normal. Luego, en blanco proyecto de biblioteca agregar el archivo de copia xib en la sección Archivos junto con .a archivo. En su proyecto principal, donde se está utilizando la biblioteca, arrastrar y soltar el archivo xib donde se encuentra .a archivo de biblioteca.

Cuando se distribuye también se puede crear un SDK. JSON.framework hizo esto en su SVN, y replicado con éxito este. Se puede ver cómo esto se hizo en http://hltypes.svn.sf.net/ en la hltypes-ios.xcodeproj y la carpeta de iOS en el proyecto.

En primer lugar es necesario "instalar" en su carpeta de compilación, y luego es necesario copiar el SDKSettings.plist formato especial. A continuación, agregue la ruta de acceso al SDK en la lista "SDK adicionales" en el proyecto de aplicación. Desventaja de los SDK compuestos son la necesidad de reiniciar Xcode 3.x siempre que se actualice este mini-SDK, y la insistencia de Xcode en la construcción de un SDK compuesto creado a partir de SDK de base de Apple y su mini-SDK (lo que significa que usted tiene que esperar un poco) .

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top