React Native项目GitHub Actions iOS构建失败(CopyPlistFile报错)
问题根因
构建报错的核心原因是Xcode执行CopyPlistFile步骤时,无法找到工作流运行环境中/Users/runner/work/ALT/ALT/App/ios/GoogleService-Info.plist路径下的Firebase配置文件。你仅将该文件存储在GitHub Secrets中,未在工作流中将Secret内容写入到Xcode要求的对应路径,导致构建失败。
排查与解决方案
- 步骤1:在工作流iOS构建步骤前新增配置文件写入逻辑
你需要先将存储为Secret的plist文件内容解码后写入到指定路径,参考工作流配置如下(需保证你存入GitHub Secrets的是plist文件的base64编码内容):
- name: 生成iOS端Firebase配置文件 run: | echo "$GOOGLE_SERVICE_INFO_PLIST" | base64 --decode > ./App/ios/GoogleService-Info.plist env: GOOGLE_SERVICE_INFO_PLIST: ${{ secrets.GOOGLE_SERVICE_INFO_PLIST }}
注意此处写入的相对路径需和报错日志中的目标路径完全匹配,Secret名称需和你在仓库后台设置的名称完全一致(大小写敏感)。
- 步骤2:新增校验步骤确认文件生成正常
在写入步骤后添加如下配置,可确认文件是否正确生成:
- name: 校验Firebase配置文件 run: | ls -la ./App/ios/ cat ./App/ios/GoogleService-Info.plist
如果执行后无对应文件输出,检查路径拼写、Secret配置是否正确。
步骤3:检查本地Xcode项目配置
确认本地Xcode项目中,GoogleService-Info.plist已被添加到对应Target的Build Phases > Copy Bundle Resources列表中,且文件在项目中的路径和工作流写入的路径完全匹配。步骤4:确认Secret编码正确
本地生成plist文件的base64编码时,Mac端需执行命令base64 -i GoogleService-Info.plist,将输出的完整字符串复制到GitHub Secrets中,不要携带多余的换行、空格。
内容的提问来源于stack exchange,提问作者Anuneet Anand
相关产品推荐
相关产品推荐

