Tengo un marco (en este caso es RxSwift) que he compilado usando Xcode 11.0 en el RxSwift.framework
paquete de estilo tradicional
Esto importó bien en Xcode 11.0 y también 11.1 nunca tuvo ningún problema con él
Hoy, con el lanzamiento de Apple de Xcode 11.2, actualicé y me aparece el error:
El compilador de Swift 5.1.2 no puede importar el módulo compilado con Swift 5.1.2
Estoy acostumbrado a desajustes rápidos del compilador, y sé que puedo recompilar RxSwift usando Xcode 11.2 y continuar, pero la característica principal de Swift 5.1 fue la estabilidad del módulo .
Tenía la impresión de que ahora que tenemos la estabilidad del módulo, los marcos no tendrán que volver a compilarse con cada nueva versión de Xcode, sin embargo, este no es el caso.
Si alguien puede explicar lo que está pasando aquí, lo agradecería mucho. ¿Xcode 11.2 exhibe un error? ¿o de alguna manera necesito decirle que quería estabilidad del módulo cuando compilé originalmente con Xcode 11.0?
Respuestas:
OK, resulta que si ves el video WWDC, lo explican: https://developer.apple.com/videos/play/wwdc2019/416/
Debe establecer la opción Construir bibliotecas para distribución en Sí en la configuración de compilación de su marco, de lo contrario, el compilador rápido no genera los
.swiftinterface
archivos necesarios que son la clave para que futuros compiladores puedan cargar su biblioteca anterior.Esto termina en su archivo project.pbxproj como:
Después de configurar este indicador, Xcode 11.2 (swift 5.1.2) pudo usar un marco que compilé usando Xcode 11.0 (swift 5.1) y todo parece funcionar correctamente.
Esperemos que esta pregunta / respuesta sirva como una referencia útil para todos los que no han visto todos los videos de WWDC
Si el error persiste, vaya a Producto > Limpiar carpeta de compilación y vuelva a compilar .
fuente
carthage
suficientemente inteligente como para aprender esto de mi archivo .pbxproj , o como dice @MihaiFratu arriba, ¿todos los desarrolladores de frameworks de terceros necesitan configurar esto ellos mismos en sus proyectos de framework?Tuve el mismo error al importar bibliotecas de terceros. Lo arreglé usando cadenas de herramientas en Xcode y tomando el lanzamiento el 19 de septiembre de 2019 desde aquí https://swift.org/download/#releases . Después de eso tuve que volver a importar mis bibliotecas y funcionó.
fuente
Puede usar Carthage para agregar el marco RxSwift.
Básicamente, Carthage le ofrece un paquete de estilo de marco tradicional RxSwift .
Entonces inténtalo
carthage update --no-use-binaries
.fuente
Esto hizo que mi error de compilación desapareciera.
carthage bootstrap --platform ios
brew bundle
pod repo update
fuente
brew bundle
? ¿Qué hace?