GitHub CI更新action/cache版本后Swiftgen构建报错求助
清理缓存验证
暂时注释掉GitHub CI中的cache相关步骤,重新运行构建。如果问题消失,说明旧缓存与新版本actions/cache存在兼容性冲突——3.x到4.x版本在缓存路径匹配、密钥生成逻辑上有变更,旧缓存里的Mint/SPM构建产物可能污染了新环境,导致SwiftGen的manifest解析异常。检查Mint缓存路径配置
确认actions/cache配置的路径是否覆盖Mint的缓存目录(通常是~/.mint或项目内的.mint)。actions/cache4.x对路径匹配规则更严格,若之前的路径配置在新版本下未正确缓存/恢复Mint依赖,会导致SwiftGen的manifest文件无法被正确读取解析。对比3.x版本的cache路径配置,确保路径完全一致。强制重新安装SwiftGen
在CI构建脚本中添加强制重新安装SwiftGen的命令:mint install swiftgen/swiftgen,跳过Mint的缓存验证。从3.2.6版本开始出现故障,可能是SwiftGen的Package.swift使用了更高版本的SPM语法,而缓存的旧构建产物是用旧Xcode版本编译的,恢复后在Xcode 15.4环境下解析失败。提取完整错误日志
查看被截断的Invalid manifest完整错误信息,SPM通常会明确说明manifest的具体问题(比如语法错误、依赖版本不兼容、工具链版本不匹配),完整日志能直接定位到Package.swift的异常点。核对
actions/cache版本变更
查看actions/cache3.2.5到3.2.6的官方变更记录,重点关注缓存恢复逻辑、文件权限处理、路径匹配规则的改动。比如3.2.6可能调整了缓存文件的权限,导致Mint无法读取SwiftGen的manifest;或是修改了缓存密钥生成逻辑,错误恢复了不兼容的旧缓存。
内容的提问来源于stack exchange,提问作者Quambadeur

