57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
import subprocess
|
|
import os
|
|
import shutil
|
|
import glob
|
|
|
|
dripzone_dir = r"c:\Users\Carlos\dev\almeira-web\dripzone-app"
|
|
android_dir = os.path.join(dripzone_dir, "android")
|
|
jbr_dir = r"C:\Program Files\Android\Android Studio\jbr"
|
|
|
|
print("[1] Limpiando APKs recursivos de carpetas públicas y assets...")
|
|
patterns = [
|
|
os.path.join(dripzone_dir, "public", "*.apk"),
|
|
os.path.join(android_dir, "app", "src", "main", "assets", "public", "*.apk"),
|
|
os.path.join(android_dir, "app", "build", "intermediates", "assets", "debug", "mergeDebugAssets", "public", "*.apk")
|
|
]
|
|
for pat in patterns:
|
|
for f in glob.glob(pat):
|
|
try:
|
|
os.remove(f)
|
|
print(f" -> Eliminado: {f}")
|
|
except Exception as e:
|
|
print(f" [Warn]: {e}")
|
|
|
|
print("[2] Sincronizando Capacitor con public limpio...")
|
|
subprocess.run(["npx.cmd", "cap", "sync", "android"], cwd=dripzone_dir, check=True)
|
|
|
|
# Doble chequeo: asegurar que ningún .apk quedó en assets
|
|
assets_public = os.path.join(android_dir, "app", "src", "main", "assets", "public")
|
|
if os.path.exists(assets_public):
|
|
for f in os.listdir(assets_public):
|
|
if f.endswith(".apk"):
|
|
os.remove(os.path.join(assets_public, f))
|
|
print(f" -> Eliminado remanente: {f}")
|
|
|
|
print("[3] Compilando APK limpio con Gradle...")
|
|
env = os.environ.copy()
|
|
env["JAVA_HOME"] = jbr_dir
|
|
|
|
res = subprocess.run(
|
|
["cmd.exe", "/c", "gradlew.bat", "assembleDebug"],
|
|
cwd=android_dir,
|
|
env=env,
|
|
capture_output=True,
|
|
text=True
|
|
)
|
|
|
|
if res.returncode == 0:
|
|
src_apk = os.path.join(android_dir, "app", "build", "outputs", "apk", "debug", "app-debug.apk")
|
|
dst1 = os.path.join(dripzone_dir, "public", "DripZone.apk")
|
|
dst2 = r"c:\Users\Carlos\dev\almeira-web\DripZone_Actualizado.apk"
|
|
shutil.copy2(src_apk, dst1)
|
|
shutil.copy2(src_apk, dst2)
|
|
size_mb = os.path.getsize(dst1) / (1024 * 1024)
|
|
print(f"\n[OK] APK LIMPIO Y OPTIMIZADO CREADO CON EXITO! Tamano: {size_mb:.2f} MB")
|
|
else:
|
|
print("[ERROR] Error en compilacion:\n", res.stderr[-1000:] if res.stderr else res.stdout[-1000:])
|