签名、权限与运行时——打包 APK 的三个必配项
签名配置
什么是签名
Android 用签名来验证 APK 来源。同一个包名的 APP 必须用同一个签名才能覆盖安装更新。换了签名就得先卸载旧版再装新版。
生成签名文件
如果没有现成签名,打包时 Auto.js 会提示:
- 自动生成 debug 签名:快速,适合自己用
- 使用已有签名:适合更新发布
debug 签名路径一般在 /sdcard/.autojs/keystore/debug.keystore。
签名密码丢了怎么办
- 记住 keystore 文件路径(备份到云盘)
- 记住 alias、password、storePassword
- 丢了 = 无法用同包名覆盖安装,只能换包名
运行时权限声明
打包时 Auto.js 会根据你用的 API 自动添加权限。但有些可能需要手动补:
打包前检查清单:
✅ 无障碍服务(核心)
✅ 悬浮窗(核心)
✅ 前台服务(推荐)
✅ 存储读写(文件操作)
✅ 截图权限(图像识别)
✅ 开机自启(定时任务)
打包后的 APK 首次运行时也会逐个请求权限(和 Auto.js 本体一样)。
打包常见问题
打包后 APK 闪退
可能原因:
- 脚本里有未处理的异常(try-catch 加一下)
- 引用了 Auto.js 本体才能访问的路径(用内部目录)
- 权限没授完就启动主逻辑(加 auto.waitFor() 和权限检查)
打包后脚本找不到资源
脚本里引用了外部路径(如 /sdcard/xxx.png)但文件没打进 APK:
- 把图片放进项目目录的
res/或同级 - 用相对路径引用
覆盖安装失败
99% 是签名不一样。确认新旧 APK 用的是同一个 keystore。
打包的 APK 体积大
主要因素:
- Auto.js 运行时本身就有 ~200MB(Pro 版更大,加了 Node.js 引擎)
- 图片资源多不多
- 可以用 Android Studio 自己编译瘦身(进阶)
分发渠道
- 内部小范围:微信 / QQ 直接发 APK
- 公开分发:放到网盘 / 自建下载页
- 正规应用市场:Auto.js 类工具上架困难(涉及自动化,容易被判定为辅助工具),建议走自有渠道