|
@@ -167,10 +167,27 @@ async function main() {
|
|
|
// 1. 下载 SDK
|
|
|
await downloadFile(SDK_URL, TEMP_ZIP);
|
|
|
|
|
|
- // 2. 解压
|
|
|
- extractZip(TEMP_ZIP, CMDLINE_TOOLS_DIR);
|
|
|
+ // 2. 解压到临时目录
|
|
|
+ const tempExtractDir = path.join(SDK_ROOT, 'cmdline-tools', 'temp');
|
|
|
+ extractZip(TEMP_ZIP, tempExtractDir);
|
|
|
|
|
|
- // 3. 设置环境变量
|
|
|
+ // 3. 移动内部的 cmdline-tools 到 latest(ZIP 内部包含 cmdline-tools 目录)
|
|
|
+ const extractedCmdlineTools = path.join(tempExtractDir, 'cmdline-tools');
|
|
|
+ if (fs.existsSync(extractedCmdlineTools)) {
|
|
|
+ console.log('📦 重新组织目录结构...');
|
|
|
+ // 如果 latest 目录已存在,先删除
|
|
|
+ if (fs.existsSync(CMDLINE_TOOLS_DIR)) {
|
|
|
+ fs.rmSync(CMDLINE_TOOLS_DIR, { recursive: true, force: true });
|
|
|
+ }
|
|
|
+ fs.renameSync(extractedCmdlineTools, CMDLINE_TOOLS_DIR);
|
|
|
+ // 删除临时目录
|
|
|
+ fs.rmSync(tempExtractDir, { recursive: true, force: true });
|
|
|
+ console.log('✅ 目录结构已调整');
|
|
|
+ } else {
|
|
|
+ throw new Error(`解压后未找到 cmdline-tools 目录: ${extractedCmdlineTools}`);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 4. 设置环境变量
|
|
|
setGitHubEnv('ANDROID_HOME', SDK_ROOT);
|
|
|
setGitHubEnv('ANDROID_SDK_ROOT', SDK_ROOT);
|
|
|
|