【问题标题】:Github actions replacing firebase json in flutter project在颤振项目中替换 Firebase json 的 Github 操作
【发布时间】:2020-10-15 17:17:05
【问题描述】:

我正在运行一个自动构建和发布 Flutter 项目的 Github 操作。但我们使用开发和生产 Firebase 环境。所以在构建之前,我想将 google-services.json 从开发版本切换到生产版本。但我似乎找不到一个简单的方法来做到这一点。或者有没有更好的方法在 Flutter 中使用 Firebase 的开发和生产版本?

可能不是很有用,但这是当前状态下的操作

on:
  push:
    branches: [ stable ]

name: Build and Release 
jobs:
  build:
    name: Build 
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
      with:
        fetch-depth: '0'
    - name: Bump version and push tag
      id: tag
      uses: anothrNick/github-tag-action@1.17.2
      env:
        GITHUB_TOKEN: ${{ secrets.TOKEN }}
        WITH_V: true
        RELEASE_BRANCHES: stable
    - uses: actions/checkout@v1
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'
    - uses: subosito/flutter-action@v1
      with:
        flutter-version: '1.17.3'
    - run: flutter pub get
    - run: flutter build appbundle
    - name: Create a Release APK
      uses: ncipollo/release-action@v1
      with:
        artifacts: "build/app/outputs/bundle/release/*.aab"
        tag: ${{ steps.tag.outputs.tag }}
        token: ${{ secrets.TOKEN }}

总的来说,我对 github 操作和 CI 非常陌生。欢迎任何建设性的反馈!

【问题讨论】:

    标签: firebase flutter github continuous-integration github-actions


    【解决方案1】:

    不确定这是最优化的解决方案,但我发现这是最容易更新和维护的解决方案。

    第 1 步:使用 FIREBASE_CONFIG_DEV 和 FIREBASE_CONFIG_PROD 之类的名称将 google-services.json 文件存储在您的 Github 存储库的机密中(这样您就不必在存储库中提交此文件,这是一个奖励)。

    第 2 步:创建两个工作流:一个用于开发,例如触发每个拉取请求,另一个用于发布,由特定分支上的提交触发,就像您所做的那样

    第 3 步:将 google-service.json 提供给您的项目

      steps:
      - uses: actions/checkout@v1
      - name: Provide Firebase Android
        env:
          FIREBASE_CONFIG_DEV: ${{ secrets.FIREBASE_CONFIG_DEV }}
        run: echo $FIREBASE_CONFIG_DEV > ./android/app/google-services.json
    

    您的开发工作流程应如下所示

    只需编辑此 sn-p 以将 google-services.json 的创建添加到您的 iOS 项目中,您应该一切顺利

    【讨论】:

    • 非常感谢!我在通过 github 设置自动发布时一直在寻找这个。
    猜你喜欢
    • 2021-04-17
    • 2020-12-05
    • 2021-10-28
    • 2019-01-09
    • 2020-03-19
    • 2021-10-09
    • 2020-02-06
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多