GitHub Actions自托管节点签名APK报path参数类型错误
问题原因排查及解决方案
- 第一步:确认构建产物真实存在
自托管运行节点默认不会每次执行工作流前清空工作区,且环境配置和GitHub托管节点存在差异,很可能出现构建步骤未正常生成对应路径APK的问题。你可以在assembleRelease步骤之后、签名步骤之前插入调试命令,确认目标路径下的文件情况:
如果该步骤输出目录不存在或无- name: 检查APK构建输出 run: ls -la app/build/outputs/apk/dev/release.apk后缀的文件,说明问题出在构建环节而非签名环节。 - 第二步:确认构建命令与输出路径匹配
你配置的签名路径是app/build/outputs/apk/dev/release,说明你使用了dev产品风味,对应的构建命令应为./gradlew assembleDevRelease而非通用的assembleRelease,通用命令只会生成app/build/outputs/apk/release路径下的安装包,无法匹配你填写的dev路径。 - 第三步:清理自托管工作区缓存
在工作流的checkout步骤开启清理配置,同时构建前执行clean指令,避免历史残留文件干扰:- uses: actions/checkout@v4 with: clean: true - name: 构建Release APK run: ./gradlew clean assembleDevRelease - 第四步:检查自托管节点权限
确认自托管节点上运行GitHub Actions runner进程的用户,对工作流执行目录拥有完整的读写权限,避免签名动作无法读取路径下的APK文件,导致内部获取到的路径参数为undefined。 - 第五步:验证签名动作兼容性
如上述步骤均无问题,可尝试固定签名动作的版本哈希,避免版本更新带来的兼容性问题:uses: r0adkll/sign-android-release@478333c792da76e4c169a31ac1a4f1ad01c73558 # v1版本的稳定commit哈希
内容的提问来源于stack exchange,提问作者Malek malkos
相关产品推荐
相关产品推荐

