Saltar al contenido principal

Swift Package Manager para desarrolladores de aplicaciones

Cómo usar Swift Package Manager para dependencias nativas de iOS o macOS

Cómo activar Swift Package Manager

#

A partir de la versión 3.44, el soporte de Swift Package Manager (SwiftPM) de Flutter está activado por defecto. Actualizar Flutter y ejecutar tu aplicación agrega automáticamente la integración de SwiftPM. Esto hace que tu proyecto descargue los paquetes Swift de los que dependen tus plugins de Flutter. Para usar una versión anterior de Flutter, es posible que necesites eliminar la integración de Swift Package Manager de la aplicación.

Ten en cuenta que Flutter recurre a CocoaPods para las dependencias que aún no soportan Swift Package Manager.

[Opcional] Para comprobar si tu proyecto está utilizando SwiftPM:

  1. En Xcode, ejecuta la aplicación.

  2. Asegúrate de que Run Prepare Flutter Framework Script se ejecute como una preacción y de que FlutterGeneratedPluginSwiftPackage sea una dependencia de destino.

    Asegúrate de que **Run Prepare Flutter Framework Script** se ejecute como una preacción

    Asegúrate de que Run Prepare Flutter Framework Script se ejecute como una preacción

Si deshabilitaste anteriormente SwiftPM, es posible que debas habilitarlo con flutter config --enable-swift-package-manager.

Si la migración automática funciona para ti, ¡eso es todo! Has terminado con esta página.

Cómo agregar la integración de Swift Package Manager manualmente

#

Cuando actualizas a Flutter 3.44 o posterior y ejecutas tu aplicación, la integración de SwiftPM se agrega automáticamente. Solo necesitas estas instrucciones si ocurrieron problemas y necesitas agregar manualmente la integración de SwiftPM a tu proyecto.

La mayoría de los desarrolladores no necesitan hacer esto.

Si experimentas un problema al migrar automáticamente tu proyecto a SwiftPM, por favor crea un reporte de problema (issue). Incluye el mensaje de error y, si es posible, incluye una copia de los siguientes archivos en tu reporte:

  • ios/Runner.xcodeproj/project.pbxproj
  • ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (o el xcscheme para el flavor utilizado)

La migración a SwiftPM requiere actualizar los archivos ios/Runner.xcodeproj/project.pbxproj y ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme.

Paso 1: Agregar la dependencia del paquete FlutterGeneratedPluginSwiftPackage

#
  1. En Xcode, abre ios/Runner.xcworkspace.

  2. Navega a Package Dependencies para el proyecto.

    Las dependencias de paquetes del proyecto

    Las dependencias de paquetes del proyecto

  3. Haz clic en el botón add.

  4. En el diálogo que se abre, haz clic en Add Local....

  5. Navega a ios/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage y haz clic en Add Package.

  6. Asegúrate de que esté agregado al target Runner y haz clic en Add Package.

    Asegúrate de que el paquete esté agregado al target `Runner`

    Asegúrate de que el paquete esté agregado al target Runner

  7. Asegúrate de que FlutterGeneratedPluginSwiftPackage se haya agregado a Frameworks, Libraries, and Embedded Content.

    Asegúrate de que `FlutterGeneratedPluginSwiftPackage` se haya agregado a **Frameworks, Libraries, and Embedded Content**

    Asegúrate de que FlutterGeneratedPluginSwiftPackage se haya agregado a Frameworks, Libraries, and Embedded Content

Paso 2: Agregar la preacción de script de ejecución Run Prepare Flutter Framework Script

#

Los siguientes pasos deben completarse para cada flavor.

  1. Ve a Product > Scheme > Edit Scheme.

  2. Expande la sección Build en la barra lateral izquierda.

  3. Haz clic en Pre-actions.

  4. Haz clic en el botón add y selecciona New Run Script Action del menú.

  5. Haz clic en el título Run Script y cámbialo a:

    Run Prepare Flutter Framework Script
    
  6. Cambia Provide build settings from a la aplicación Runner.

  7. Escribe lo siguiente en el cuadro de texto:

    sh
    "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" prepare
    
    Agregar la preacción de compilación **Run Prepare Flutter Framework Script**

    Agregar la preacción de compilación Run Prepare Flutter Framework Script

Paso 3: Ejecutar la aplicación

#
  1. En Xcode, ejecuta la aplicación.

  2. Asegúrate de que Run Prepare Flutter Framework Script se ejecute como una preacción y de que FlutterGeneratedPluginSwiftPackage sea una dependencia de destino.

    Asegúrate de que **Run Prepare Flutter Framework Script** se ejecute como una preacción

    Asegúrate de que Run Prepare Flutter Framework Script se ejecute como una preacción

  3. Asegúrate de que la aplicación se ejecute en la línea de comandos con flutter run.

La migración a SwiftPM requiere actualizar los archivos macos/Runner.xcodeproj/project.pbxproj y macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme.

Paso 1: Agregar la dependencia del paquete FlutterGeneratedPluginSwiftPackage

#
  1. En Xcode, abre macos/Runner.xcworkspace.

  2. Navega a Package Dependencies para el proyecto.

    Las dependencias de paquetes del proyecto

    Las dependencias de paquetes del proyecto

  3. Haz clic en el botón add.

  4. En el diálogo que se abre, haz clic en Add Local....

  5. Navega a macos/Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage y haz clic en Add Package.

  6. Asegúrate de que esté agregado al Runner Target y haz clic en Add Package.

    Asegúrate de que el paquete esté agregado al target `Runner`

    Asegúrate de que el paquete esté agregado al target Runner

  7. Asegúrate de que FlutterGeneratedPluginSwiftPackage se haya agregado a Frameworks, Libraries, and Embedded Content.

    Asegúrate de que `FlutterGeneratedPluginSwiftPackage` se haya agregado a **Frameworks, Libraries, and Embedded Content**

    Asegúrate de que FlutterGeneratedPluginSwiftPackage se haya agregado a Frameworks, Libraries, and Embedded Content

Paso 2: Agregar la preacción de script de ejecución Run Prepare Flutter Framework Script

#

Los siguientes pasos deben completarse para cada flavor.

  1. Ve a Product > Scheme > Edit Scheme.

  2. Expande la sección Build en la barra lateral izquierda.

  3. Haz clic en Pre-actions.

  4. Haz clic en el botón add y selecciona New Run Script Action del menú.

  5. Haz clic en el título Run Script y cámbialo a:

    Run Prepare Flutter Framework Script
    
  6. Cambia Provide build settings from al target Runner.

  7. Escribe lo siguiente en el cuadro de texto:

    sh
    "$FLUTTER_ROOT"/packages/flutter_tools/bin/macos_assemble.sh prepare
    
    Agregar la preacción de compilación **Run Prepare Flutter Framework Script**

    Agregar la preacción de compilación Run Prepare Flutter Framework Script

Paso 3: Ejecutar la aplicación

#
  1. En Xcode, ejecuta la aplicación.

  2. Asegúrate de que Run Prepare Flutter Framework Script se ejecute como una preacción y de que FlutterGeneratedPluginSwiftPackage sea una dependencia de destino.

    Asegúrate de que `Run Prepare Flutter Framework Script` se ejecute como una preacción

    Asegúrate de que Run Prepare Flutter Framework Script se ejecute como una preacción

  3. Asegúrate de que la aplicación se ejecute en la línea de comandos con flutter run.

Agregar a una aplicación existente (add-to-app)

#

Para usar SwiftPM, consulta una de las siguientes páginas, según corresponda:

Agregar a un target de Xcode personalizado

#

Tu proyecto de Xcode de Flutter puede tener targets de Xcode personalizados para compilar productos adicionales, como frameworks o pruebas unitarias. Puedes agregar la integración de Swift Package Manager a estos targets de Xcode personalizados.

Sigue los pasos en Cómo agregar la integración de Swift Package Manager.

En el Paso 1 para el elemento de la lista 6, usa tu target personalizado en lugar del target Flutter.

En el Paso 2 para el elemento de la lista 6, usa tu target personalizado en lugar del target Flutter.

Cómo eliminar la integración de Swift Package Manager

#

Cuando se modifica tu aplicación para soportar SwiftPM, el proyecto de Xcode se actualiza para agregar las dependencias de plugins de Flutter.

Para deshacer esta migración:

  1. Turn off Swift Package Manager.

  2. Limpia tu proyecto:

    sh
    flutter clean
    
  3. Abre tu aplicación (ios/Runner.xcworkspace o macos/Runner.xcworkspace) en Xcode.

  4. Navega a Package Dependencies para el proyecto.

  5. Haz clic en el paquete FlutterGeneratedPluginSwiftPackage, luego haz clic en el botón remove.

    El `FlutterGeneratedPluginSwiftPackage` a eliminar

    El FlutterGeneratedPluginSwiftPackage a eliminar

  6. Navega a Frameworks, Libraries, and Embedded Content para el target Runner.

  7. Haz clic en FlutterGeneratedPluginSwiftPackage, luego haz clic en el botón remove.

    El `FlutterGeneratedPluginSwiftPackage` a eliminar

    El FlutterGeneratedPluginSwiftPackage a eliminar

  8. Ve a Product > Scheme > Edit Scheme.

  9. Expande la sección Build en la barra lateral izquierda.

  10. Haz clic en Pre-actions.

  11. Expande Run Prepare Flutter Framework Script.

  12. Haz clic en el botón delete.

    La preacción de compilación a eliminar

    La preacción de compilación a eliminar

Cómo usar un plugin de Flutter de Swift Package Manager que requiere una versión de OS superior

#

Si un plugin de Flutter de Swift Package Manager requiere una versión de OS superior a la del proyecto, es posible que obtengas un error como este:

Target Integrity (Xcode): The package product 'plugin_name_ios' requires minimum platform version 14.0 for the iOS platform, but this target supports 12.0

Para usar el plugin:

  1. Abre tu aplicación (ios/Runner.xcworkspace o macos/Runner.xcworkspace) en Xcode.

  2. Aumenta el Minimum Deployments del target de tu aplicación.

    La configuración de **Minimum Deployments** del target

    La configuración de Minimum Deployments del target

  3. Si actualizaste el Minimum Deployments de tu aplicación de iOS, regenera los archivos de configuración del proyecto de iOS:

    sh
    flutter build ios --config-only
    
  4. Si actualizaste el Minimum Deployments de tu aplicación de macOS, regenera los archivos de configuración del proyecto de macOS:

    sh
    flutter build macos --config-only
    

Cómo desactivar Swift Package Manager

#

En general, no hagas esto. Recuerda que el registro de CocoaPods pasará a ser de solo lectura el 2 de diciembre de 2026 y desactivar SwiftPM no estará permitido en el futuro.

Desactivar Swift Package Manager hace que Flutter use CocoaPods para todas las dependencias. Sin embargo, SwiftPM permanece integrado con tu proyecto. Para eliminar la integración de Swift Package Manager por completo de tu proyecto, sigue las instrucciones de Cómo eliminar la integración de Swift Package Manager.

Desactivar SwiftPM para un solo proyecto

#

En el archivo pubspec.yaml del proyecto, en la sección flutter, establece enable-swift-package-manager en false en la subsección config.

pubspec.yaml
yaml
# The following section is specific to Flutter packages.
flutter:
  config:
    enable-swift-package-manager: false

Esto desactiva Swift Package Manager para todos los colaboradores de este proyecto.

Desactivar SwiftPM globalmente para todos los proyectos

#

Ejecuta el siguiente comando:

sh
flutter config --no-enable-swift-package-manager

Esto desactiva Swift Package Manager para el usuario actual.

Si un proyecto es incompatible con Swift Package Manager, todos los colaboradores deben ejecutar este comando.