sábado, 9 de enero de 2021

CocoaPods could not find compatible versions for pod "FirebaseFirestore"

Seguiste la guía oficial de FlutterFire https://firebase.flutter.dev/docs/overview/#improve-ios-build-times Donde te dice que agregues esta línea a ios/Podfile

  • pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '6.26.0'

Instalaste Cocoapods https://josevibriezca.blogspot.com/2021/01/instalar-cocoapods-en-macos-1015.html

Y ahora tienes un nuevo error:

  • [!] CocoaPods could not find compatible versions for pod "FirebaseFirestore":
    • In Podfile:
      • FirebaseFirestore (from `https://github.com/invertase/firestore-ios-sdk-frameworks.git`, tag `6.26.0`)
      • cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) was resolved to 0.14.4, which depends on
        • Firebase/Firestore (~> 6.33.0) was resolved to 6.33.0, which depends on
          • FirebaseFirestore (~> 1.18.0)

El problema esta en que tenemos instalada una versión diferente a la que especificamos en Pofdile

Para solucionarlo vamos al archivo Podfile (que está en la carpeta ios) del proyecto de Flutter y cambiamos:

  • pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '6.26.0'

por 6.33.0 (o cualquiera que sea la versión que el error nos indique – en mi caso me dice was resolved to 6.33.0)

  • pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '6.33.0'

Instalar cocoapods en macOS 10.15 Catalina

Tienes un proyecto en Flutter con Firebase y en Windows+Android funciona todo bien. Cuando lo intentas ejecutar en macOS con el emulador de iPhone falla porque no tienes Cocoapods instalado.

Al tratar de instalar cocoapods desde la terminal con el comando:

sudo gem install cocoapods

La instalación falla con los errores:

  • Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
  • /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first.

Después de mucho googlear y que nada funciono, la respuesta la encontré en una pregunta de un curso de Fernando Herrera, gracias al alumno Alejandro César Valencia.

La solución está en https://www.udemy.com/course/flutter-ios-android-fernando-herrera/learn/lecture/14717920#questions/12534056 pero no podrás verla si no compraste el curso. A continuación, comparto la solución de Alejandro y si les sirve no se olviden de comprar el curso de Fernando que está muy bueno y agradecer a Alejandro.

  1. Actualiza Ruby a la última versión (en mi caso fue la 2.7.2). Teclea en la terminal:
    • curl -L https://get.rvm.io | bash -s stable
  2. Reinicia la terminal (clic derecho salir y vuelve a abrir)
  3. Ejecuta:
    • rvm install ruby-[version]
    Reemplaza versión por la más actual (sin los corchetes). Esto se tarda un rato.
    (o quita -[version] si no quieres especificar una versión)
  4. Ya que termina de instalar Ruby, ahora instala cocoapods:
    • sudo gem install cocoapods
    y listo. una vez que termine verifica con:
    • pod --version