Cuando tuve que activar use_frameworks! en un proyecto, me encontré con el clásico problema: CocoaPods intentaba convertir todo en frameworks dinámicos y varias dependencias explotaban al compilar. Me puse a investigar y descubrí que sí puedo usar frameworks sin verme obligado a habilitar linking dinámico. Todo se resuelve especificando el modo estático. Este post resume cómo lo resolví y por qué este ajuste salva tiempo cuando trabajas con librerías que no están preparadas para el modo dinámico.
Cuando usas use_frameworks!, CocoaPods interpreta que quieres usar XCFrameworks en vez de bibliotecas estáticas. El problema es que, al activarlo, todas las dependencias intentan vincularse como dinámicas, y de vez en cuando alguna rompe la compilación (por ejemplo, vision-camera).
Si necesitas frameworks pero quieres seguir compilando de forma estática, solo tienes que reemplazar:
use_frameworks!por esta variante:
use_frameworks! linkage: :staticPor si no lo sabías, un framework en iOS no es más que una forma de empaquetar múltiples arquitecturas en un solo archivo. No tiene nada de especial. Dentro del .xcframework encontrarás carpetas por arquitectura y un archivo .plist que describe el contenido.