Tenemos un único paquete creado para diferentes sitios, que necesita que se ejecuten algunos pasos previos a la compilación antes de los pasos de compilación reales.
En Flutter Android, estos pasos se ejecutan en "preBuild.dependsOn" (en android/app/build.gradle)
Editar (información adicional):
MyFlutterMob/android/app/build.gradle
Se ejecutan los siguientes pasos previos a la compilación:
def option = System.getenv('APK_FOR')
setConfig()
{
if(option == "DEMO"){
copy{
from "../../DemoAppAsset/AppLogo.png"
into "../../assets/images"
}
}
else if(option == "PROD"){
copy{
from "../../ProdAppAsset/AppLogo.png"
into "../../assets/images"
}
}
}
preBuild.dependsOn setConfig
Es posible lo mismo en la compilación web de Flutter (no se puede encontrar el script Gradle para el mismo)
------------------------------------
Si estás usando VSCode, creo que puedes configurar una compilación previa en launch.json, como se explica aquí
Básicamente puedes configurarlotu .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart",
}
]
}
luego, debes crear un archivo task.json en la misma carpeta y agregar un script que hará lo que quieras (por ejemplo, un script npm)
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "copyClientConfiguration",
"problemMatcher": []
}
]
}
y por último puedes agregar esta tarea como preLaunchTask en launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart",
"preLaunchTask": "npm: copyClientConfiguration"
}
]
}
3
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página enlazada cambia. - De la reseña
&norteguión; Lin Du
1 de julio de 2021 a las 2:49
gracias @slideshowp2, actualicé la respuesta
- Guilherme Gabanelli
1 de julio de 2021 a las 3:48
Esto no funcionará para crear un paquete de producción. Además, no está claro cómo pasar el parámetro para seleccionar una configuración particular (PROD1/PROD2/UAT/...)
Gururaja Hegde
8 de julio de 2021 a las 13:44
------------------------------------
Escribió un script que toma el nombre del entorno (PROD1/PROD2/UAT/...) como entrada y copia las "imágenes requeridas en una etiqueta blanca" /"archivos de lista de colores de temas"/"configuraciones de lista de cadenas" en las carpetas respectivas antes de ejecutar "flutter build web". Aunque restringe todas las versiones desde Linux/mantiene un archivo bat equivalente para Windows, en términos generales funciona.