Xcode “unsupported option '-G' para target '...-simulator'

Solución al Error de Xcode: "unsupported option '-G'" en Proyectos Flutter

Fecha: 4 de Mayo de 2025

Si estás desarrollando con Flutter y te has encontrado con el frustrante error unsupported option '-G' for target 'arm64-apple-ios...' (o similar para el simulador) al compilar tu proyecto iOS, especialmente después de actualizar Xcode (a la versión 16 o superior), ¡no estás solo! Vamos a ver cómo solucionarlo paso a paso.

Resumen del Problema

El error ocurre porque una bandera de compilación inválida (-G), que generalmente proviene de la opción -GCC_WARN_INHIBIT_ALL_WARNINGS, está siendo pasada al compilador Clang cuando se compila para iOS (simulador o dispositivo).

Este problema suele estar relacionado con alguna dependencia gestionada por CocoaPods, siendo BoringSSL-GRPC (una dependencia común en proyectos que usan Firebase, gRPC y otros servicios de Google) una de las causas más frecuentes.

Solución Recomendada (Flutter + CocoaPods)

La estrategia más efectiva es modificar el proceso de instalación de CocoaPods para eliminar automáticamente esta bandera problemática antes de que cause el error de compilación.

Paso 1: Añadir Script al Final de tu Podfile

Abre el archivo ios/Podfile en la raíz de tu proyecto Flutter con tu editor de código preferido. Desplázate hasta el final del archivo y añade el siguiente bloque de código Ruby:

Este script se ejecutará automáticamente cada vez que ejecutes pod install. Revisará las configuraciones de compilación de cada Pod y eliminará la bandera -GCC_WARN_INHIBIT_ALL_WARNINGS si la encuentra.

Paso 2: Ejecuta los Comandos de Limpieza y Reinstalación

Después de guardar los cambios en tu Podfile, abre una terminal, navega hasta el directorio ios de tu proyecto Flutter (cd ios) y ejecuta los siguientes comandos en orden:

Espera a que el comando pod install termine. Deberías ver mensajes en la terminal indicando que se está eliminando la bandera problemática si se encontró.

Paso 3: Abre Xcode y Prueba la Compilación

  1. Abre tu proyecto iOS usando Xcode. Asegúrate de abrir el archivo .xcworkspace (no el .xcodeproj): open ios/Runner.xcworkspace.
  2. Realiza una limpieza profunda del proyecto en Xcode: Ve al menú Product > Clean Build Folder (o usa el atajo Cmd + Shift + K).
  3. Selecciona un simulador de iOS como destino.
  4. Intenta compilar y ejecutar tu aplicación (botón de Play o Cmd + R).

Con suerte, el error unsupported option '-G' debería haber desaparecido.

Paso 4: Consideraciones Adicionales (Firebase, etc.)

Si estás utilizando Firebase u otras dependencias que internamente usan gRPC o BoringSSL, es buena idea intentar actualizar tus Pods:

A veces, las versiones más recientes de estas librerías ya incluyen correcciones para estos problemas de compilación. Si después de actualizar, el problema se resuelve sin necesidad del script en el Podfile, podrías considerar eliminar ese script para mantener tu Podfile más limpio.

Paso 5: Buenas Prácticas

  • Verifica $(inherited): En la configuración de compilación de tu target principal (Runner) dentro de Xcode (Build Settings), asegúrate de que las banderas como OTHER_CFLAGS y OTHER_LDFLAGS incluyan la variable $(inherited). Esto asegura que las configuraciones de los Pods se apliquen correctamente.
  • Mantén Actualizado: Intenta mantener Flutter, CocoaPods y tus dependencias (Pods) razonablemente actualizados.
  • Revisa Logs: Presta atención a las advertencias y errores en los logs de compilación, especialmente después de actualizaciones importantes de Xcode o dependencias.

Usando una IA Generativa para Aplicar la Solución

Si prefieres que una IA te ayude a aplicar directamente los cambios necesarios en tu proyecto, puedes usar el siguiente prompt:

Prompt para IA Generativa (Aplicar Solución):

Rol: Eres un asistente experto en desarrollo Flutter y configuración de proyectos iOS/Xcode.

Contexto:
Estoy experimentando el error unsupported option '-G' for target '...' al compilar mi proyecto Flutter para iOS, probablemente debido a la bandera -GCC_WARN_INHIBIT_ALL_WARNINGS introducida por una dependencia de CocoaPods (como BoringSSL-GRPC) en Xcode 16 o superior.

Tarea:
Ayúdame a solucionar este error aplicando la solución recomendada que implica modificar el Podfile y ejecutar comandos de limpieza.

Requisitos:
1. Proporciona el bloque de código Ruby completo del script post_install para añadir al final de ios/Podfile que elimine la bandera -GCC_WARN_INHIBIT_ALL_WARNINGS.
2. Indica la secuencia exacta de comandos de terminal a ejecutar en el directorio ios después de guardar el Podfile (limpieza DerivedData, pod deintegrate, pod install).

Resultado Esperado:
1. El bloque de código Ruby completo para el script post_install.
2. La secuencia de comandos de terminal necesarios.

Conclusión

El error unsupported option '-G' puede ser un dolor de cabeza, pero generalmente se soluciona limpiando la bandera incorrecta introducida por alguna dependencia. El script post_install en el Podfile es una solución robusta hasta que las dependencias subyacentes se actualicen oficialmente.

¡Espero que esta guía te ayude a volver a compilar tu proyecto Flutter en iOS sin problemas!

Comentarios

Youtube