You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GitHub Action用Fastlane分发应用到Firebase App Distribution报错找不到二进制文件

问题根因

你遇到的Couldn't find binary报错核心原因是:Fastlane的dev lane中缺少构建APK的步骤。
本地执行命令时你本地环境有之前手动构建生成的APK缓存,Fastlane可以在默认的构建产物路径找到对应文件,因此运行正常。而GitHub Action的运行环境每次启动都是全新的干净实例,不存在预先生成的APK文件,因此firebase_app_distribution步骤无法找到目标二进制文件触发报错。
另外你贴出的GitHub Actions配置存在YAML缩进错误,steps字段的缩进层级和distribute job下的runs-on字段不对齐,也可能导致步骤执行异常。

修复方案

  1. 调整Fastfile的dev lane,在调用Firebase App Distribution前先执行gradle构建命令生成APK:
desc "Build and submit to Firebase App distribution Internal users"
lane :dev do
  # 新增构建步骤,可根据你的需求替换为assembleRelease/你自己的构建变体
  gradle(task: "assembleDebug")
  firebase_app_distribution(
    app: "some -app -ID",
    groups: "internal-testers",
    release_notes_file: "FirebaseAppDistributionConfig/dev_notes.txt",
    # 如果你的构建产物不在默认路径,可以显式指定apk_path参数,比如:
    # apk_path: "app/build/outputs/apk/debug/app-debug.apk"
  )
end

优化提示:你可以把Fastfile中firebase_app_distribution的app参数改为读取环境变量,避免硬编码:

firebase_app_distribution(
  app: ENV['FIREBASE_APP_ID'],
  # 其他参数保持不变
)
  1. 修正GitHub Actions配置的YAML缩进,确保steps和runs-on字段同级,都属于distribute job的子属性:
jobs:
  distribute:
    runs-on: ubuntu-latest
    # steps缩进要和上面的runs-on对齐
    steps:
      - uses: actions/checkout@v2
      # 剩余原有步骤保持不变

查看详细报错的方法

你可以通过以下方式获取Fastlane的完整报错堆栈和调试信息:

  • 执行Fastlane命令时添加--verbose参数,输出完整调试日志。把GitHub Action中的执行命令修改为:
    bundle exec fastlane dev --verbose
    运行后就能看到Fastlane搜索二进制文件的路径、完整的报错堆栈信息。
  • 可以在Fastfile的lane中添加目录打印语句,确认构建产物是否正常生成、路径是否符合预期:
lane :dev do
  gradle(task: "assembleDebug")
  # 打印当前工作目录和所有apk文件路径
  puts "当前工作目录:#{Dir.pwd}"
  puts "目录下所有APK文件:#{Dir['**/*.apk']}"
  firebase_app_distribution(
    # 原有配置
  )
end

内容的提问来源于stack exchange,提问作者Amit Pal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:39:04