De alguna manera, "siempre incrustar bibliotecas estándar de Swift" para todos mis objetivos es SÍ. Probablemente debido al desarrollo histórico de Swift 1 a 5. Estoy usando Xcode 10.2 ahora, actualicé los objetivos y mi "versión de idioma Swift" es 5 para todos ellos.
Por interés, creé un nuevo proyecto vacío con Xcode 10.2 y se crea con "Always Embed Swift Standard Libraries" como NO para las compilaciones de depuración y lanzamiento.
Tengo la sensación de que incluso si lo dejo como está, Apple eliminará las bibliotecas estándar de Swift de todos modos como parte del adelgazamiento para iOS 12.2+.
Entonces, ¿cuál es el valor predeterminado correcto desde Swift 5? ¿Algún beneficio de mantenerlo en SÍ o cambiarlo a NO?
[Actualización] Gracias a Cœur por un comentario. Realmente parece que una de las versiones de CocoaPods lo hizo. El proyecto está configurado en NO, pero todos los objetivos que usan CocoadPods fueron SÍ.
El valor predeterminado para nuevos proyectos es NO y (que yo sepa) siempre lo ha sido. Nunca he tenido "Incrustar siempre" establecido en SÍ, y mis proyectos siempre han funcionado bien. Entonces, a menos que haya una muy buena razón por la que esto fue SÍ, probablemente no debería haber sido así.
Tenga en cuenta que las bibliotecas se eliminan solo si está compilando con el SDK 12.2 y va a una máquina con 12.2 (o posterior). Las bibliotecas aún son necesarias para ejecutarse en una máquina 12.1 o anterior.
Vine aquí porque actualicé mi entorno de desarrollo a:
XCode 10.2 iOS 12.2 WatchOS 5.1.3
Y mis aplicaciones se negaron incluso a iniciarse en el reloj , con un solo mensaje a la consola, diciendo que no se encontró la imagen de la biblioteca. (usando la configuración de compilación de Swift4)
Activar "siempre incrustar" hace que el proceso de instalación de la aplicación sea increíblemente lento en el reloj.
Actualicé el proyecto para usar Swift5, ahora la aplicación al menos se inicia de nuevo.
para su información
Si establece verdadero para ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES en el marco de destino, probablemente recibirá ERROR ITMS-90206: Invalid Bundle.
En mi caso, configuro verdadero para el objetivo que es App / Unit Tests / UI Tests.