Pregunta ¿Qué hace la configuración de compilación "Contenido incrustado contiene código Swift" en Xcode 6?


Es una nueva configuración en "Opciones de compilación". ¿Qué hace? Parece que no puedo encontrar ninguna documentación al respecto. Creo que esto es: ¿tiene que configurarse para YES en una aplicación mixta Objective-C / Swift para decirle a Xcode que se vincule con el Swift Runtime?


32
2018-06-11 13:11


origen


Respuestas:


No necesita ser  para vincular. Esta configuración es solo para cuando tienes un objetivo Objective-C puro que depende de un objetivo Swift de fuente mixta o puro.

Descripción:

Active esta configuración para indicar que el contenido incrustado en el producto de un destino contiene código Swift, de modo que las bibliotecas Swift estándar se pueden incluir en el producto.

También en la nota de lanzamiento de Beta 7:

El paso de compilación que integra las bibliotecas estándar Swift en un paquete ahora solo se ejecuta para   tipos de productos de aplicación, y solo si la aplicación en sí misma, independientemente de cualquier incrustado   contenido, contiene archivos fuente Swift. Al construir una aplicación que no contiene   Swift archivos de origen, pero incorpora otro contenido como marcos, servicios XPC, extensiones de aplicaciones,   etc. que sí contienen código Swift, debe establecer la configuración de compilación "El contenido incrustado contiene   Swift Code "(EMBEDDED_CONTENT_CONTAINS_SWIFT). De esta forma, las bibliotecas Swift   ser incluido en la aplicación.

Saludos


24
2017-09-06 19:11



De acuerdo a Incrustar contenido con Swift en Objective-C

Las bibliotecas estándar de Swift se copian en un paquete si y solo si está creando una aplicación y esta aplicación contiene archivos de código fuente Swift por sí mismo

Si está creando una aplicación que no usa Swift pero incorpora contenido como un marco que sí lo hace, Xcode no incluirá estas bibliotecas en su aplicación. Como resultado, su aplicación se bloqueará al iniciar

Para solucionar este problema, configure la configuración de compilación Contenido incrustado contiene SWIFT Code (EMBEDDED_CONTENT_CONTAINS_SWIFT) en SÍ. Esta configuración de compilación, que especifica si el producto de un objetivo tiene contenido integrado con código Swift, le dice a Xcode que incruste bibliotecas estándar de Swift en su aplicación cuando se establece en SÍ


3
2017-11-22 08:21



No creo que se requiera una interoperabilidad general entre Swift y Objective-C. Es tan simple como agregar el código Swift y editar el encabezado de puente.

Si ve alguna documentación sobre Extensiones para iOS, la jerga menciona bastante "incrustado": contenido incrustado, marcos incrustados, etc. Debido a que las Extensiones están organizadas, compiladas y funcionan de forma bastante diferente a las aplicaciones normales, yo no estaría sorprendido de que haya una configuración de construcción como esta perteneciente a ellos.


2
2018-06-11 14:37