如何使用eas-cli通过命令行非交互式配置Android Keystore?
可以通过eas-cli实现非交互式配置Android keystore,无需走交互式流程,适配自动化创建、构建Expo项目的需求。
问题原因说明
你之前直接执行eas build --platform android --non-interactive报错,是因为项目未预先完成keystore配置,构建流程需要交互式确认生成keystore,和非交互参数冲突导致的。
具体实现方案
目前eas-cli没有内置--initialize-keystore这类直接参数,但可以通过环境变量+指定命令的方式实现需求:
方案1:自动生成全新keystore并配置
提前在环境中配置以下3个变量,自定义对应的密码和别名即可:
EXPO_ANDROID_KEYSTORE_PASSWORD:keystore文件访问密码EXPO_ANDROID_KEY_PASSWORD:密钥对应的访问密码EXPO_ANDROID_KEY_ALIAS:密钥的别名
配置完成后执行以下命令,即可自动生成keystore并完成项目绑定,全程无交互:eas credentials:generate --platform android --non-interactive
完成后再执行eas build --platform android --non-interactive就可以正常触发构建,不会再报错。
方案2:上传预先生成的统一keystore
如果你的自动化流程需要所有项目使用同一个keystore,也可以直接非交互式上传预先生成好的keystore文件,命令如下:eas credentials:set --platform android --keystore-path <你的keystore文件本地路径> --keystore-password <keystore密码> --key-alias <密钥别名> --key-password <密钥密码> --non-interactive
注意事项
- 命令中的敏感信息参数(密码、别名)都可以替换为对应的环境变量,避免明文泄露
- 全新创建的Expo项目需要先执行
eas init --non-interactive完成和Expo账号的绑定,再执行keystore配置相关命令
内容的提问来源于stack exchange,提问作者owencm

