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:])