[ACTUALIZACIÓN 03/04/2015]

La pregunta es ahora de 4 años de edad, y se aplica a una versión específica de XCode que tengo ahora especificada en el tema.


He buscado mucho para este argumento, pero no pude encontrar una solución, he incluso publicar en stackoverflow, pero pronto me eliminan la pregunta porque de muy poco acceso.
Ahora estoy intentando de nuevo.

Tengo un espacio de trabajo con dos proyectos distintos a y B.

B tiene dos objetivos, uno que construir una biblioteca estática Blib.una, y uno que construir un paquete B. bundle. Todos ellos se construyó en la que se derivan del directorio.

En Un proyecto que me puede agregar fácilmente la biblioteca estática de la construcción de las fases. Sin embargo no puedo encontrar una manera de incluir el paquete. B. bundle no es visible desde el «copiar recurso» de la ficha en la A.
Por lo tanto necesito para añadir de forma manual, con todo lo que ello implica.
También pensé en usar un script, pero me gustaría usar esto como una última opción.

Hay alguien que tiene una solución para esto ? ¿Me olvido de algo ?

gracias

  • Yo también he probado a incluir el paquete directamente en el proyecto B, pero no funciona
  • No puedo creer que nadie se encontraron con este problema. Acabo de abrir un ticket a soporte de Apple, pronto voy a publicar la respuesta.
  • aún a la espera de que el boleto para ser contestadas por parte de Apple…nadie parece saber la respuesta a esto.
InformationsquelleAutor Leonardo | 2011-07-14

6 Comentarios

  1. 19

    Después de una larga investigación, se vino para arriba no hay una manera fácil de hacer esto. El B. paquete nunca es visible para Un proyecto, y no hay ninguna configuración en el área de trabajo a cambio de que.
    En este punto hay tres soluciones:

    • Incluyen el paquete manualmente desde «copia recursos->otros», yo empecé con esto, pero cada vez que hay un cambio que tiene que caer y se incluyen en el paquete de nuevo
    • Crear un script para ser ejecutado en la fase de construcción, si todo está integrada en los PRODUCTOS dir usted puede encontrar el paquete fácilmente y de haber copiado automáticamente en la aplicación.bundle. Esto no es una mala solución. Si usted está usando svn el guión fue incluido en el proyecto, y los usuarios tienen de forma gratuita, sin trabajo adicional.
    • Como se sugiere por parte de Apple de soporte técnico, el uso de la carpeta de referencias.Construir paquete B en una carpeta y añadir carpeta a Un proyecto utilizando el «Crear Carpeta de Referencias para cualquier agregado carpetas» opción. Xcode 4 actualización de su paquete en la carpeta cada vez que lo construyó.
      El agregado de la carpeta aparecerá como azul una vez incluido en el proyecto A.

    Eso es todo, yo personalmente uso el script, ya que esta solución es la ruta de acceso independiente si utiliza el estándar de xcode variable de referencia, tales como BUILT_PRODUCTS_DIR y así sucesivamente, y la secuencia de comandos de shell es sólo un cp-r-f

    [ACTUALIZACIÓN 03/04/2015]

    Me gustaría señalar que la pregunta es ahora de 4 años de edad. En ese momento no había muchas «oficial» de las opciones disponibles. Incluso me habló con Apple Soporte técnico, solución propuesta 3 como la única solución disponible. Por supuesto que es muy probable que las cosas han cambiado, y no hay una solución mucho mejor. Sólo hablar, también me gustaría añadir que los tres de arriba no son «hacks», sino «soluciones», tal vez técnicamente obsoleto, pero aún así pueden ser utilizados hoy en día. Tengo la intención de un «hack» como…»hack», lo que significa que probablemente no va a funcionar en el futuro de la versión de software.

    • Sugerencia: he utilizado algo como cp -R -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/ y funciona muy bien.
    • Porque mi CONTENTS_FOLDER_PATH contiene un espacio, tuve que usar «$CODESIGNING_FOLDER_PATH» en su lugar. Pero gracias por la sugerencia, @mmilo
    • Es importante el uso de la -L opción cuando se utiliza la cp comando para asegurarse de que los enlaces simbólicos son seguidos. De lo contrario, al intento de su archivo binario, se producirá un error de validación y su *.paquete de recursos no estarán disponibles en *.archivo de aplicación. Ejemplo:cp -R -L -f $BUILT_PRODUCTS_DIR/resource.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
    • echa un vistazo @0xced la solución de abajo. Tuve exactamente el mismo problema como OP y fue capaz de resolver de la manera en que él sugirió, que no requiere de cualquiera de las tres modificaciones que se proponen
    • La pregunta es ahora de 4 años, en ese tiempo con XCode 4 las anteriores son las únicas soluciones disponibles.
  2. 8

    Aquí es cómo lo hice yo.

    1. Arrastrar y soltar B.bundle de Proyecto B → Productos → B. el paquete en el Copia Paquete de Recursos fase de construcción de su aplicación en Un Proyecto (seleccione la Crear grupos opciones cuando se le preguntó). Esto agregará B.bundle en la raíz de tu Proyecto Un esquema. Se puede mover en el Marcos directorio cerca de Blib.a si se prefiere.

    2. Seleccione B.bundle y comprobar su Ubicación en el de la Identidad y Tipo de panel de la derecha (Área de utilidades de). De forma predeterminada, Xcode elige Relativa a Proyecto de. Esto es incorrecto, seleccione Relativa a la construcción de los Productos lugar.

    3. La ruta de acceso a B.bundle tendrá ahora un aspecto algo como ../../../../../../../../Projects/MyApp/B.bundle. Esto no es lo que desea, pero que fácilmente se puede arreglar. Abierto ProjectA.xcodeproj/project.pbxproj en un editor de texto, búsqueda de este camino y eliminar todo lo que sea excepto para B.bundle. Su project.pbxproj debería tener este aspecto:

      explicitFileType = wrapper.cfbundle; name = B.bundle; path = "B.bundle"; sourceTree = BUILT_PRODUCTS_DIR; };
    4. Guardar su project.pbxproj archivo. Xcode se volverá a cargar automáticamente su proyecto y su aplicación debe construir bien.

    • 🍻 saludos @0xced, esta es una preferible solución a la aceptación de la respuesta, y sus instrucciones son muy claras e inteligentes en el trabajo en torno a lo que parece ser que es un Xcode bug (o, al menos, una mala configuración)
    • pero, ¿cómo hace uno para agregar el paquete de destino, como una dependencia del principal objetivo del proyecto? Tengo que crear manualmente antes de la construcción del proyecto principal objetivo. la única mejor manera que he encontrado para añadir una dependencia mediante la anidación de los dos proyectos, pero soy incapaz de añadir el paquete de destino, como una dependencia de los principales beneficiarios de los proyectos cuando los dos proyectos son hermanos en un área de trabajo
    • La biblioteca estática (Blib.a) tiene una dependencia en el paquete de recursos (B. bundle). Desde la biblioteca estática está vinculado por la aplicación (implícito de dependencia), el recurso bundle se genera automáticamente. Esquemáticamente: Proyecto → Blib.a → B. el paquete.
    • Solución agradable! Para mí (Xcode 7, el proyecto B como un subproyecto de Un) B. bundle ni siquiera aparecen en la raíz de Un proyecto, y la opción «relativa a la construcción de los productos» fue elegido por defecto, por lo que los pasos 2-4 ni siquiera es necesario!
  3. 4

    Después de buscar por un largo tiempo y no muchas veces, he encontrado este recurso ha sido absolutamente un gran tutorial para crear Bibliotecas Estáticas y incluir paquetes en su proyecto principal o, incluso, para su distribución a la 3ª parte de los desarrolladores que pueden consumir tu biblioteca.

    Absolutamente recomendado:

    https://github.com/jverkoey/iOS-Framework

    • La pregunta es acerca de compartir el paquete a través de proyectos en la misma área de trabajo.
    • Si usted sigue las instrucciones que se presentan en el proyecto, se muestra cómo crear un destino que contiene un paquete y que logra exactamente eso. Usted puede compartir el paquete en la misma área de trabajo, o mejor, usted también puede compartir con otros proyectos.
  4. 1

    En el proyecto, es el producto del proyecto B una dependencia en su esquema de la acción de Compilación? Creo que podría haber para configurar esta dependencia (a veces la desactivación automática de la dependencia de descubrimiento es la mejor opción) para que se muestre, y estar disponibles para la copia en otro destino. Creo que esto es debido a que realmente no existen (como en una imagen de archivo de recursos) hasta que se construye y Xcode necesita para asegurarse de que se construyó antes de trabajar con él de otro objetivo.

    • Hola de nuevo 🙂 por desgracia he comprobado, y Una tiene una dependencia correcta a B. parece extraño que en la copia de los recursos de la fase de proyecto de Una carpeta es visto por xcode. Por qué no se muestra todo el contenido del área de trabajo ?
  5. 1

    Como de Xcode 5.1.1 yo era capaz de arrastrar y soltar B. paquete desde el Navegador de Proyectos para la Copia de Paquete de la lista de Recursos de Un proyecto Fases de construcción. Supongo creación de B. destino bundle no es un problema.

  6. 0
    1. Interruptor de construir a Generic iOS Device. Este paso es necesario para crear un no-simulador de referencia.
    2. Arrastre el .bundle para el otro proyecto Copy Bundle Resources.
    3. Seleccione el .bundle en el Project navigator de otro proyecto, y cambiar su Location a Relative to Build Products

    Asegúrese de que su .bundle añadido a Target Dependencies de la biblioteca estática

Dejar respuesta

Please enter your comment!
Please enter your name here