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

通过GitHub Action将Flutter编译的APK上传至Slack失败问题咨询

GitHub Action上传Flutter APK到Slack失败排查方案

1. 优先修复YAML缩进错误(核心问题)

YAML对缩进敏感度极高,你的配置存在多处层级错误,会直接导致步骤不执行、参数读取失败:

  • steps字段要缩进2格,和runs-on平级,归属到build job下
  • MeilCli/slack-upload-file@v1的with字段多缩进了1格,要和uses左对齐
  • action-slack步骤的env字段错误缩进在with内部,需调整为和with平级
  • 最后的release-apk步骤错误缩进在action-slack的配置内,需调整为独立步骤,和其他step平级

2. 删除无效冗余命令

以下命令完全无用,还可能造成文件混淆,直接删除即可:

- run: 'echo build/app/outputs/apk/release/app-release.apk > app-release.apk'

这行代码只会在工作目录生成一个写了APK路径的纯文本文件,并不会导出真实APK安装包。

3. 校验Slack令牌权限

你使用的SLACK_READ_WRITE_TOKEN必须满足以下要求:

  • 令牌所属的Slack应用已经开启files:write权限
  • 已经将该Slack应用邀请到你配置的SLACK_CHANNEL_DEPLOY对应的频道内
  • 若使用的是Bot令牌,额外确认开启chat:write权限,保证上传附带的评论可以正常发送

4. 提前校验APK路径正确性

在执行Slack上传步骤前,增加一步路径校验命令,确认APK确实编译生成在目标路径:

- run: ls -l build/app/outputs/apk/release/

如果执行这步时日志里没有显示app-release.apk,说明Flutter编译环节存在问题,需要先排查编译失败的原因。

修正后核心步骤参考

name: APK Deploy
on:
  push:
    branches:
    - master
    
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'
    - uses: subosito/flutter-action@v1
      with:
        channel: 'stable'
    - run: flutter pub get
    - run: flutter analyze .
    - run: flutter test
    - run: flutter build apk --release
    # 新增路径校验
    - run: ls -l build/app/outputs/apk/release/
    - uses: MeilCli/slack-upload-file@v1
      with:
        slack_token: ${{ secrets.SLACK_READ_WRITE_TOKEN }}
        channels: ${{ secrets.SLACK_CHANNEL_DEPLOY }}
        file_path: 'build/app/outputs/apk/release/app-release.apk'
        file_name: 'app-release.apk'
        file_type: 'apk'
        initial_comment: '${{ github.ref }} - deployed the apk file to slack'
    - name: action-slack
      uses: 8398a7/action-slack@v3.8.0
      with:
        status: ${{ job.status }}
        author_name: Build Notification
      env:
        SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
    - name: release-apk
      uses: actions/upload-artifact@v2
      with:
        name: app-release.apk
        path: build/app/outputs/apk/release/app-release.apk

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:36:01