A partir de CocoaPods 1.9.0 y Firebase 7, puedes elegir si tus dependencias de Firebase se compilan como frameworks estáticos o dinámicos. Te recomendamos usar frameworks estáticos, a menos que necesites ciertos comportamientos dinámicos de la biblioteca.
Ten en cuenta que las bibliotecas desarrolladas fuera de GitHub solo se pueden vincular de forma estática, incluso con CocoaPods 1.9.0 y versiones posteriores. Actualmente, esta lista de bibliotecas incluye AdMob, Analytics, Firebase ML y Performance Monitoring. Todos los demás canales de distribución, incluidos el archivo ZIP, Swift Package Manager y Carthage, solo proporcionan bibliotecas vinculadas de forma estática.
En este documento, se supone que tienes conocimiento práctico sobre la vinculación dinámica y estática en las plataformas de Apple. Si no estás familiarizado con estos conceptos, consulta la siguiente documentación:
- Mach‑O Programming Topics
- Dynamic Library Programming Topics
- Using Firebase from a framework or a library
Como este documento se relaciona con los tipos de vinculación de bibliotecas y no con la carga de conjuntos de recursos que no se pueden ejecutar, los términos biblioteca y framework se usan de manera intercambiable.
Vinculación estática
Las bibliotecas vinculadas de forma estática se agrupan en el ejecutable de la aplicación en el tiempo de compilación. Como resultado, los archivos de objeto de la biblioteca estática estarán presentes en tu app cuando se inicie, y no será necesario que el vinculador dinámico los resuelva en ese momento. Por lo tanto, las apps que usan vínculos estáticos se iniciarán más rápido. Esto tiene la desventaja de generar ejecutables de objetos binarios o de apps más grandes, aunque se debería tener en cuenta que el tamaño del ejecutable más grande se verá compensado por la falta de bibliotecas dinámicas agrupadas.
Para forzar la vinculación estática de las dependencias de Firebase, especifícala explícitamente en tu Podfile:
# cocoapods >= 1.9.0
use_frameworks! :linkage => :static