Cambiar nombre de package (paquete) en Flutter

Tiempo de lectura: 2 minutos

Hoy vamos a ver cómo cambiar el nombre del Package con Flutter.

Escribiendo un diario - Pexels

Esto es un proceso tedioso por lo que recomiendo mucha atención, ya que puedes cargarte tu proyecto.

Habrá que realizar pasos tanto en Android como en iOS:

Android

Cambiar el package en AndroidManifest.xml:

  • Navega a android/app/src/main/AndroidManifest.xml.
  • Cambia el valor del atributo package en la etiqueta <manifest> a tu nuevo nombre de paquete.

NOTA: en versiones modernas del SDK Android no viene incluido en manifest el nombre del paquete y no se recomienda añadirlo. Por lo que no tendrás que realizar este paso.

Modificar la estructura de carpetas en Android:

  • Si tu antiguo nombre de paquete era com.ejemplo.miapp, habrá una estructura de carpetas como android/app/src/main/kotlin/com/ejemplo/miapp.
  • Renombra las carpetas com, ejemplo, miapp según tu nuevo nombre de paquete. Por ejemplo, si el nuevo nombre de paquete es com.nuevo.nombre, entonces deberías tener android/app/src/main/kotlin/com/nuevo/nombre.

Actualizar los nombres de los paquetes en los archivos .java o .kt:

  • Abre los archivos en android/app/src/main/kotlin/[tu-paquete-viejo]/*.kt *.java.
  • Cambia la declaración del paquete (la línea que comienza con package) en estos archivos para que refleje el nuevo nombre del paquete.
package com.nombrepaquete

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
}

Actualizar build.gradle:

  • En android/app/build.gradle, busca la propiedad applicationId y namespace (en el caso de las versiones nuevas de Android) y actualízala con el nuevo nombre de paquete.

applicationId:

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.nombrepaquete"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion flutter.minSdkVersion
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

namespace:

android {
    namespace "com.nombrepaquete"

...
    compileSdkVersion flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

...

Finalmente para asegurarnos de que está todo, podemos realizar una búsqueda del nombre del paquete antiguo y ver en que archivos sigue estando para poner el nuevo.

iOS

Cambiar el bundle identifier en Info.plist:

  • Navega a ios/Runner/Info.plist.
  • Cambia el valor de CFBundleIdentifier al nuevo nombre de paquete (identificador de bundle). Haz este paso solo si existe ese valor, si está la variable  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> no es necesario realizarlo.

Actualizar el nombre del proyecto en Xcode:

  • Abre el proyecto Flutter en Xcode (ios/Runner.xcworkspace).
  • En el panel de la izquierda, selecciona el proyecto Runner y luego selecciona la opción Runner bajo TARGETS.
  • En la pestaña General, cambia el Bundle Identifier al nuevo nombre de paquete.

Modificar el Podfile si es necesario:

  • Navega a ios/Podfile y asegúrate de que no haya ninguna referencia directa al antiguo nombre de paquete. Si hay, actualízalo.

Actualización final

Limpieza y reconstrucción:

  • Una vez realizados estos cambios, limpia y reconstruye el proyecto para asegurarte de que todo esté configurado correctamente:
flutter clean 
flutter pub get 
flutter run

Paso Opcional: Verificar en todos los archivos

Puedes buscar en todo el proyecto cualquier referencia al antiguo nombre de paquete utilizando la función de búsqueda en tu editor de texto (por ejemplo, VS Code, IntelliJ, etc.) para asegurarte de que no quede ninguna referencia al antiguo nombre.

Deja un comentario