【macOS 版】Android studio jdk 1.8 gradle 一键打包成 release 包的脚本

把下面内容保存成 release_jdk8.sh(放在 项目根目录 ,与 gradlew 同级),一键赋予可执行权限 后即可 双击/命令行 完成 JDK 1.8 环境下的 release 打包 (APK + AAB),并自动把成品拷到 outputs/release/


✅ 一键脚本(macOS 专用)

bash 复制代码
#!/bin/bash
# release_jdk8.sh
# 自动使用 JDK 1.8 打 release 包(APK + AAB)

set -e          # 遇错即停
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
OUTPUT_DIR="$PROJECT_DIR/outputs/release"
mkdir -p "$OUTPUT_DIR"

# 1. 临时指定 JDK 1.8(仅当前脚本生效)
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
echo ">>> 使用 JDK 1.8: $JAVA_HOME"
java -version

# 2. 清理旧产物
echo ">>> 清理旧产物"
./gradlew clean

# 3. 打 APK
echo ">>> 开始 assembleRelease"
./gradlew assembleRelease

# 4. 打 AAB(Google Play)
echo ">>> 开始 bundleRelease"
./gradlew bundleRelease

# 5. 拷贝成品到统一目录
APK=$(find app/build/outputs/apk/release -name "*.apk" -type f | head -n 1)
AAB=$(find app/build/outputs/bundle/release -name "*.aab" -type f | head -n 1)

[[ -n "$APK" ]] && cp "$APK" "$OUTPUT_DIR/" && echo ">>> APK 已拷贝 -> $OUTPUT_DIR"
[[ -n "$AAB" ]] && cp "$AAB" "$OUTPUT_DIR/" && echo ">>> AAB 已拷贝 -> $OUTPUT_DIR"

echo ">>> 打包完成,请查收 $OUTPUT_DIR"
open "$OUTPUT_DIR"

🔧 使用步骤

  1. 给脚本加执行权限

    bash 复制代码
    chmod +x release_jdk8.sh
  2. 双击或在 Android Studio Terminal 里运行

    bash 复制代码
    ./release_jdk8.sh
  3. 跑完后自动弹出 outputs/release/ 文件夹,里面就是 签名 + 压缩 + 对齐 的正式 APK 与 AAB。


📌 前提

  • 已安装 JDK 1.8/usr/libexec/java_home -v 1.8 能返回路径)
  • 项目根目录已放好 key.properties 与签名文件,release 签名配置已在 build.gradle 中写好(见前面模板)。

更多阅读

困住我们一直在经济底层的到底是什么?

大前端++

AI 对大前端项目的冲击,【大前端++】来抵御
【混合开发】进阶到【大前端++】
【大前端++】几大特征
【大前端++】前端、大前端、大前端++的区别有哪些?

Android推荐阅读

Cannot fit requested classes in a single dex file (# methods: 93047 > 65536)
【Android】开发者模式启用

开发工具链推荐

API开发工具postman、国内xxapi和SmartApi的性能对比

心法杂谈

【心力建设】《毛选》里的心法

【心力建设】3:如何在组织集体或团队里得到认可

健康杂谈

【论健康】怎么才算健康(健康的本质)
【论健康】健康的不可能三角

相关推荐
小北方城市网5 小时前
第 6 课:Vue 3 工程化与项目部署实战 —— 从本地开发到线上发布
大数据·运维·前端·ai
BD_Marathon6 小时前
Vue3_响应式数据的处理方式
前端·javascript·vue.js
90后的晨仔6 小时前
🛠️ 修复 macOS 预览乱码 PDF 的终极方案:用 Python 批量“图像化”拯救无法打开的 PDF
前端
嚣张丶小麦兜6 小时前
Vue常用工具库
前端·javascript·vue.js
wanghowie6 小时前
01.07 Java基础篇|函数式编程与语言新特性总览
java·开发语言·面试
Cricyta Sevina6 小时前
Java IO 基础理论知识笔记
java·开发语言·笔记
小萌新上大分6 小时前
java线程通信 生产者消费者,synchronized,,ReentrantLock,Condition(笔记备份)
java·多线程·lock·java线程间通信的方式·reentrantlock使用·生产者消费者问题java·java多线程与高并发
それども7 小时前
Spring Bean 的name可以相同吗
java·后端·spring
墨雪不会编程7 小时前
C++ string 详解:STL 字符串容器的使用技巧
java·开发语言·c++
Lucky GGBond7 小时前
实践开发:老系统新增字段我是如何用枚举优雅兼容历史数据的
java