From 889dd9975aa88d69830b305bfde3b795de2a4630 Mon Sep 17 00:00:00 2001 From: ShodiBoy1 Date: Thu, 21 May 2026 00:11:04 +0200 Subject: [PATCH 1/2] support for .dmg downloads in AndroidStudioUrlUpdater --- CHANGELOG.adoc | 1 + .../url/tool/androidstudio/AndroidStudioUrlUpdater.java | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index bbfe750876..fc1fa8b113 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -31,6 +31,7 @@ Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/800[#800]: Fix infinite recursion in Sonar start/stop on macOS * https://github.com/devonfw/IDEasy/issues/1716[#1716]: Add commandlet for Claude Code CLI * https://github.com/devonfw/IDEasy/issues/1844[#1844]: Fix vscode installation hanging indefinitely in WSL Linux environments +* https://github.com/devonfw/IDEasy/issues/863[#863]: Mac x64 / ARM android-studio 2024 releases missing — accept .dmg downloads alongside .zip The full list of changes for this release can be found in https://github.com/devonfw/IDEasy/milestone/44?closed=1[milestone 2026.05.001]. diff --git a/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java b/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java index 052e654300..6603264da3 100644 --- a/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java +++ b/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java @@ -44,14 +44,15 @@ protected void addVersion(UrlVersion urlVersion, AndroidJsonItem jsonVersionItem for (AndroidJsonDownload download : jsonVersionItem.download()) { + // Mac downloads switched from .zip to .dmg starting with Android Studio 2024.x. if (download.link().contains("windows.zip")) { doAddVersion(urlVersion, download.link(), WINDOWS, X64, download.checksum()); } else if (download.link().contains("linux.tar.gz")) { doAddVersion(urlVersion, download.link(), LINUX, X64, download.checksum()); - } else if (download.link().contains("mac.zip")) { - doAddVersion(urlVersion, download.link(), MAC, X64, download.checksum()); - } else if (download.link().contains("mac_arm.zip")) { + } else if (download.link().contains("mac_arm.zip") || download.link().contains("mac_arm.dmg")) { doAddVersion(urlVersion, download.link(), MAC, ARM64, download.checksum()); + } else if (download.link().contains("mac.zip") || download.link().contains("mac.dmg")) { + doAddVersion(urlVersion, download.link(), MAC, X64, download.checksum()); } else { logger.info("Unknown architecture for tool {} version {} and download {}.", getToolWithEdition(), jsonVersionItem.version(), download.link()); From d80076c88d75f6d1376f0b4a80020199f575d534 Mon Sep 17 00:00:00 2001 From: ShodiBoy1 Date: Fri, 22 May 2026 00:23:32 +0200 Subject: [PATCH 2/2] droped hardcoded extensions in AndroidStudioUrlUpdater --- .../AndroidStudioUrlUpdater.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java b/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java index 6603264da3..eb9301e700 100644 --- a/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java +++ b/url-updater/src/main/java/com/devonfw/tools/ide/url/tool/androidstudio/AndroidStudioUrlUpdater.java @@ -44,18 +44,22 @@ protected void addVersion(UrlVersion urlVersion, AndroidJsonItem jsonVersionItem for (AndroidJsonDownload download : jsonVersionItem.download()) { - // Mac downloads switched from .zip to .dmg starting with Android Studio 2024.x. - if (download.link().contains("windows.zip")) { - doAddVersion(urlVersion, download.link(), WINDOWS, X64, download.checksum()); - } else if (download.link().contains("linux.tar.gz")) { - doAddVersion(urlVersion, download.link(), LINUX, X64, download.checksum()); - } else if (download.link().contains("mac_arm.zip") || download.link().contains("mac_arm.dmg")) { - doAddVersion(urlVersion, download.link(), MAC, ARM64, download.checksum()); - } else if (download.link().contains("mac.zip") || download.link().contains("mac.dmg")) { - doAddVersion(urlVersion, download.link(), MAC, X64, download.checksum()); + String link = download.link(); + // windows.exe would otherwise match the "windows." branch below, but IDEasy cannot extract it + if (link.endsWith(".exe")) { + continue; + } + if (link.contains("windows.")) { + doAddVersion(urlVersion, link, WINDOWS, X64, download.checksum()); + } else if (link.contains("linux.")) { + doAddVersion(urlVersion, link, LINUX, X64, download.checksum()); + } else if (link.contains("mac_arm.")) { + doAddVersion(urlVersion, link, MAC, ARM64, download.checksum()); + } else if (link.contains("mac.")) { + doAddVersion(urlVersion, link, MAC, X64, download.checksum()); } else { logger.info("Unknown architecture for tool {} version {} and download {}.", getToolWithEdition(), - jsonVersionItem.version(), download.link()); + jsonVersionItem.version(), link); } } }