No se pueden agregar binarys embeddeds (otros proyectos) para proyectar dependencies en XCode

Tengo un espacio de trabajo XCode creado con XCode 6.0.1. Consta 2 bibliotecas (Swift) y una aplicación de iOS (Swift) que depende de esas 2 bibliotecas. Tuve una configuration estable que me permitió ejecutar la aplicación de iOS en iPhone y simuladores: los 2 proyectos de la biblioteca se agregaron como Binarios integrados (ver image) de la aplicación.

Ahora tengo XCode 6.1. Recientemente, DerivedData carpeta DerivedData en la carpeta ~/Library/Developer/Xcode mientras se ejecutaba XCode. Después de eso, mi espacio de trabajo no funcionó: la aplicación iOS no se pudo comstackr y obtuve un error linker que decía que no podía encontrar los proyectos de la biblioteca.

Traté de solucionarlo eliminando las 2 bibliotecas de Embedded Binaries del proyecto de la aplicación, y no puedo volver a agregarlas. Al hacer clic en el button + debajo de los binarys embeddeds en la configuration del proyecto, se muestran los proyectos del área de trabajo correctamente, pero seleccionar y agregar mi proyecto de biblioteca no los agrega a la list de binarys embeddeds . Resolví el error del linker creando un nuevo espacio de trabajo. La aplicación comstack, pero cómo me vincula a las bibliotecas es un misterio para mí: no están en la list de binarys embeddeds o frameworks vinculados y bibliotecas que no están en la ruta de búsqueda de frameworks . Parece que no hay ningún vínculo entre la aplicación y las bibliotecas que necesita (y, obviamente, tienen como comstack), excepto que los proyectos de bibliotecas están en el mismo espacio de trabajo.

¿Por qué no puedo agregar proyectos de biblioteca a Binary Embedded ? ¿Es normal en XCode 6.1 que los proyectos de dependencia solo se compilen y se incrusten en una aplicación sin estar listdos o enlazados en cualquier lugar?

introduzca la descripción de la imagen aquí

Este es un resumen de mi respuesta a la pregunta Xcode no agregará "Embedded binary" después de eliminar "DerivedData" , vea la pregunta y la respuesta original para get más context e información :

  1. Eliminar todos los proyectos marco del espacio de trabajo.
  2. Realice una "compilation limpia" y / o elimine el "DerivedData"
  3. Agregar el proyecto al espacio de trabajo
  4. Construir el proyecto (posiblemente opcional)
  5. En la pestaña General del objective de la aplicación, click + en "Marcos y bibliotecas vinculadas" , select el marco.
  6. Genere y ejecute en el simulador (no debe haber problemas de creación o ejecución)
  7. Cree y ejecute para el dispositivo (esto podría causar un locking debido a que el marco no está vinculado correctamente, ignore este locking)
  8. Haga clic en + debajo de "Binarios integrados" , select el marco. Esto debería agregarlo al proyecto (posible duplicado en "Marcos y bibliotecas vinculadas").
  9. Repite para todos los frameworks requeridos.
  10. Una vez que se confirma la construcción y ejecución (en el dispositivo), puede eliminar cualquier marco duplicado (o rojo) en Project Navigator o en la pestaña General de destino

Ok, me encontré con el mismo problema que tú. Después de eliminar los datos derivados, no pude volver a vincular mis binarys de nuevo. Creo que la razón es porque los datos derivados son a los que los files binarys se escriben y se vinculan en su proyecto.

Lo que hice para resolver fue seleccionar mi Framework como mi objective de compilation. Después de buildlo, el objective de Framework cambió de rojo a negro. Puedo ver en su captura de pantalla que es rojo, lo que significa que no se compiló en un binary y se escribió en el disco.

Una vez que hice esto, pude volver a vincular el Framework a mi Proyecto porque había una reference en el disco. ¡Espero que esto ayude!

Limpie sus proyectos y construya su marco primero. A partir de entonces puede incrustarlo.

Aquí es cómo solucioné el problema:

  1. Construye el framwork.

  2. Abra la carpeta de compilation y arrastre el marco integrado en el proyecto de la aplicación (por lo que usa la ruta a DerivedData).

  3. Agregue el marco a la list de frameworks integrados.

  4. En el Finder, muestre Contenido en el file xcodeproj de la aplicación, luego abra project.pbxproj en su editor de text favorito.

  5. Encuentre la línea con la ruta DerivedData larga. Cámbielo para que no haya nombre, la ruta es el nombre del marco y el tree de origen es BUILT_PRODUCTS_DIR

Xcode debería notar el cambio y la biblioteca en el proyecto de la aplicación será negra en lugar de roja y ahora se buildá y se ejecutará correctamente.

Tengo un problema muy similar y lo solucioné anoche. Decidí volver a este hilo y ofrecer mi solución, ya que la solución anterior no ayudó en mi caso.

Tengo un espacio de trabajo que contiene dos frameworks y una aplicación. La aplicación estaba haciendo uso de ambos frameworks por un time hasta que me golpeó un misterioso error de compilation donde decidió agregar un acceso de propiedad a una variable de instancia llamada "cubo" de un tipo de class que se encuentra en uno de los frameworks, hacer acceso a "_cube" imposible (quejándose de que no fue declarado, mientras que en realidad había funcionado previamente en un método setter).

Larga historia corta, después de una limpieza, de alguna manera el proyecto de espacio de trabajo / aplicación perdió la pista del marco integrado de mi proyecto iOS 8+. La eliminación del marco embedded fue la última gota en esa línea de falla, lo que hizo que mi proyecto ya no permitiera seleccionar ningún marco para incrustar.

Revertir el proyecto y el espacio de trabajo a una versión anterior no eliminó el vudú.

Terminé de agregar los proyectos de marco a ser embeddeds en el proyecto principal de la aplicación (como files) e introduje dependencies de destino en los frameworks.

Entonces pude volver a incrustar los frameworks y el enlace.

En cuanto a _cube, tuve que especificar un getter para la propiedad y @ sintetizar la propiedad con un nombre diferente. No tengo una explicación para este.

Probablemente sea porque su marco es un proyecto separado y no un objective separado. Intenta mirar atentamente Sesión 416: Construyendo un marco moderno alnetworkingedor de los minutos 34-36. Le mostrará cómo configurarlo correctamente.

Esto hace que sea un poco confuso si desea compartir un marco a través de múltiples proyectos por el path