No se puede agregar el paquete Swift cuando “Build Libraries for Distribution = YES” en mi Framework.
Básicamente, estoy construyendo un marco de trabajo y necesito agregar una biblioteca en él. El problema es cuando cambio Construir Bibliotecas para Distribución = SÍ
, me muestra una advertencia.
El módulo ‘NombreDelMódulo’ no fue compilado con soporte de evolución de bibliotecas; usarlo significa que la compatibilidad binaria para ‘NombreDelMarco’ no puede garantizarse
davy.ai
Solución para agregar una biblioteca a un marco de trabajo
Cuando cambias la opción
Build Libraries for Distribution
aYES
en Xcode para distribuir el marco de trabajo, es posible que aparezca una advertencia como la siguiente:Para resolver este problema, debes asegurarte de que la biblioteca que deseas agregar al marco de trabajo sea compatible con la evolución de la biblioteca. La evolución de la biblioteca significa que un marco de trabajo binario puede ser compatible con diferentes versiones de la misma biblioteca.
Si la biblioteca no es compatible con la evolución de la biblioteca, puedes intentar los siguientes pasos:
Verificar si la biblioteca es compatible con la evolución de la biblioteca. Puedes verificar esto en la documentación de la biblioteca o contactar al autor de la biblioteca.
Si la biblioteca no es compatible con la evolución de la biblioteca, puedes elegir una biblioteca alternativa que sí la admita o omitir el uso de la biblioteca en el marco de trabajo.
Si aún deseas utilizar la biblioteca que no es compatible con la evolución de la biblioteca, puedes agregar la opción
-Xlinker -force_load
a las Other Linker Flags en la configuración de compilación del objetivo del marco de trabajo.Esta opción obliga al enlazador a cargar toda la biblioteca en memoria, lo que garantiza que los símbolos de la biblioteca estén disponibles en tiempo de ejecución. Sin embargo, esto aumentará el tamaño del marco de trabajo y puede causar otros problemas.
Other Linker Flags: -Xlinker -force_load $(SRCROOT)/ruta/hacia/biblioteca/libNombreBiblioteca.a
Nota: Reemplaza
ruta/hacia/biblioteca/
por la ruta real hacia la biblioteca yNombreBiblioteca
por el nombre real de la biblioteca.Esta solución no es recomendada, pero puede ser una solución temporal si no hay otras opciones disponibles.