Github Actions中Flutter构建找不到google-services.json问题排查
问题排查与解决办法
针对你在Github Actions构建Flutter项目时遇到的google-services.json找不到的问题,以下是几个可能的原因及对应的解决方式:
1. 换行符干扰导致解码异常
echo命令会自动在输出末尾添加换行符,可能破坏Base64解码后的文件完整性。虽然cat能看到内容,但文件实际可能存在格式问题,导致Gradle无法识别。
解决办法:用printf替代echo执行解码,避免额外换行符:
- name: Copy google services run: printf "%s" "${{ secrets.GOOGLE_SERVICE }}" | base64 -d > android/app/google-services.json
2. 步骤顺序错误
确保生成google-services.json的步骤在代码checkout之后、flutter build之前执行。如果步骤顺序颠倒,要么目录不存在,要么Gradle在文件生成前就开始执行构建流程。
示例正确流程:
steps: - name: Checkout code uses: actions/checkout@v4 - name: Copy google services run: printf "%s" "${{ secrets.GOOGLE_SERVICE }}" | base64 -d > android/app/google-services.json - name: Build APK run: flutter build apk --release
3. 文件权限不足
解码后的文件可能没有足够的读取权限,导致Gradle无法访问。
解决办法:添加修改权限的步骤:
- name: Fix google-services.json permissions run: chmod 644 android/app/google-services.json
4. Gradle缓存未更新
Github Actions的Gradle缓存可能保留了旧的构建状态,未检测到新生成的google-services.json。
解决办法:在build前清理Gradle缓存:
- name: Clean Gradle cache run: cd android && ./gradlew clean
5. 路径匹配问题
确认当前工作目录是否为仓库根目录。可以在生成文件前打印当前目录,验证路径是否正确:
- name: Verify working directory run: pwd && ls -la android/app/
内容的提问来源于stack exchange,提问作者Cyrille keith
相关产品推荐
相关产品推荐

