¿Cuáles son las bibliotecas que enlazan las opciones en Xcode?

A partir de Xcode 7, hay algunas opciones de enlace de biblioteca / marco en Xcode

Ir al Target aplicación en la pestaña del proyecto

 General -> Embedded Binaries General -> Link Frameworks and Libraries Build Phases -> Target Dependencies Build Phases -> Link Binary with Libraries 

Aquí hay algunas forms en que encontré

  • Al usar Alamofire, se muestra la opción Embedded Binaries

Alamofire.framework se agrega automágicamente como una dependencia de destino, marco vinculado y marco integrado en una fase de compilation de files de copy que es todo lo que necesita para build en el simulador y un dispositivo.

  • Al crear su primer Framework de iOS, se muestra que agregando Library.xcodeproj en el espacio de trabajo, luego Build Phases -> Link Binary with Libraries

  • Carthage Tutorial: Getting Started muestra que arrastrando Library.framework a General -> Link Frameworks and Libraries . Parece General -> Link Frameworks and Libraries y Build Phases -> Link Binary with Libraries son las mismas

  • Carthage parece diferenciar entre iOS y OS X.

Si está construyendo para OS X: en la pestaña de configuration "General" de los objectives de su aplicación, en la sección "Binarios integrados", arrastre y suelte cada marco que desee usar desde la carpeta Carthage / Build en el disco.

Si estás creando iOS, tvOS o watchOS: en la pestaña de configuration "General" de los objectives de tu aplicación, en la sección "Marcos y bibliotecas vinculadas", arrastra y suelta cada marco que quieras usar desde la carpeta Carthage / Build en disco.

Leyendo la vinculación a una biblioteca o marco , sabemos que estas opciones tratan de vincular un marco a nuestra aplicación / marco.

¿Pero cuáles son las diferencias entre ellos? ¿Hay alguna opción única para catch all a todos?

Para los frameworks dynamics creados con carthage usualmente utilizo esta configuration:

  • Vincula la biblioteca con cualquier objective en el que quieras usarlo. Necesitas esto para poder importar el marco en tu código.
  • Incruste la biblioteca solo en el destino de la aplicación contenedora. Esto realmente copyrá el marco en su package de aplicaciones. Si no lo incrusta, su aplicación se bloqueará al iniciarse, ya que no se puede encontrar su marco.

Solo el objective de la aplicación es responsable de incrustar todos los frameworks y sus dependencies. De esta forma, si una extensión y la aplicación utilizan un marco, se distribuirán con la aplicación solo una vez.

Para la interfaz Xcode:

  • arrastrando un marco a General -> Binarios embeddeds agregará el marco de trabajo tanto a las fases de construcción "Enlace binary con bibliotecas" como a "Insertar frameworks"
  • arrastrando un marco a General -> Marcos y bibliotecas vinculados agregará el marco solo a la fase de compilation "Enlace binary con bibliotecas".

Las vistas en General parecen estar llenas desde la pestaña de fases de construcción para que puedas usarlas.

Espero que tenga sentido.

Editar: Las dependencies de destino son solo objectives que deben buildse antes de poder build el objective actual. Por lo tanto, el objective de su aplicación enumeraría su extensión aquí, para que la extensión se construya, siempre que compile su aplicación.