Start Debugging
2026-01-23 flutter Edit on GitHub

Depurar Flutter iOS desde Windows: un flujo de trabajo con dispositivo real (Flutter 3.x)

Un flujo de trabajo pragmático para depurar apps de Flutter iOS desde Windows: delega la compilación a macOS en GitHub Actions, instala el IPA en un iPhone real y usa flutter attach para hot reload y DevTools.

Cada pocas semanas vuelve el mismo punto de dolor: “Estoy en Windows. Quiero depurar mi app de Flutter iOS en un iPhone real. ¿Necesito de verdad un Mac?”. Un post reciente en r/FlutterDev propone una solución pragmática: delegar la compilación de iOS a macOS en GitHub Actions, y luego instalar y adjuntar para depurar desde Windows: https://www.reddit.com/r/FlutterDev/comments/1qkm5pd/develop_flutter_ios_apps_on_windows_with_a_real/

El proyecto open source detrás es https://github.com/MobAI-App/ios-builder.

Divide el problema: compila en macOS, depura desde Windows

iOS tiene dos restricciones duras:

Pero la depuración de Flutter consiste, sobre todo, en “adjuntarse a una app en ejecución y hablar con el VM service”. Eso significa que puedes desacoplar build/install del ciclo del desarrollador, siempre que puedas meter en el dispositivo una app capaz de depurarse.

El flujo descrito en el post es:

Una compilación mínima en GitHub Actions que produce un IPA

Esto no es la historia completa (la firma es un agujero de conejo aparte), pero muestra la idea clave: un runner de macOS compila y sube un artefacto.

name: ios-ipa
on:
  workflow_dispatch:
jobs:
  build:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v4
      - uses: subosito/flutter-action@v2
        with:
          channel: stable
      - run: flutter pub get
      - run: flutter build ipa --debug --no-codesign
      - uses: actions/upload-artifact@v4
        with:
          name: ios-ipa
          path: build/ios/ipa/*.ipa

Que --no-codesign sea aceptable depende de cómo planees instalar. Muchos caminos hacia un dispositivo real siguen requiriendo firma en alguna etapa, incluso para flujos de debug.

El ciclo del lado Windows: instala y luego adjunta

Una vez que la app está instalada y ejecutándose en el iPhone, la parte de Flutter se vuelve normal:

# From Windows
flutter devices
flutter attach -d <device-id>

Hot reload funciona porque te estás adjuntando a una sesión de depuración, no porque hayas compilado en la misma máquina.

Conoce los tradeoffs desde el principio

Este flujo es útil, pero no es magia:

Si quieres el escrito original y el repo que disparó esto, empieza aquí: https://github.com/MobAI-App/ios-builder. Para la guía oficial de Flutter sobre depuración en iOS, ten cerca también la documentación de la plataforma: https://docs.flutter.dev/platform-integration/ios/ios-debugging.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Volver