简体   繁体   中英

Github Action packages Flutter APK, prompting inconsistent app signatures

I use Github Action to automatically package the Android APK file (same signature file), but when installing to the phone, it prompts: "The signature of the app is inconsistent with the signature of the installed app". Does anyone know how to deal with it? Thank you!

My process configuration:


# This is a basic workflow to help you get started with Actions

name: build

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the "main" branch
  push:
    branches: [ "main" ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build_android:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    env:
      KEY_JKS: ${{ secrets.KEY_JKS }}
      KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
      KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
      STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
      
    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.0.5'
          channel: 'stable'
          cache: true
          cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash
          cache-path: /Users/runner/hostedtoolcache/flutter/:channel:-:version:-:arch

      - name: Flutter action
        # You may pin to the exact commit or the version.
        uses: subosito/flutter-action@v2.7.0
      - name: Create Key File
        run: echo $KEY_JKS | base64 -di > android/app/release.jks

      # build apk
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: '11'
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.0.5'
      - run: flutter pub get
      - run: flutter build apk
      - uses: actions/upload-artifact@v1
        with:
          name: app-release.apk
          path: build/app/outputs/apk/release/app-release.apk
          token: ${{ secrets.GITHUB_TOKEN }}

I have solved this problem.The problem that appeared before, seems to be the cause of the cache.

The steps are as follows:

It mainly includes the modification of the following two lines:

- run: flutter clean
- run: echo $KEY_JKS | base64 -di > android/app/release.jks

Now my process file is like this:


# This is a basic workflow to help you get started with Actions

name: build

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the "main" branch
  push:
    branches: [ "main" ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build_android:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    env:
      KEY_JKS: ${{ secrets.KEY_JKS }}
      KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
      KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
      STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
      
    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.0.5'
          channel: 'stable'
          cache: true
          cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash
          cache-path: /home/runner/hostedtoolcache/flutter/:channel:-:version:-:arch

      - name: Flutter action
        uses: subosito/flutter-action@v2.7.0
      # build apk
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v2
        with:
          distribution: 'zulu'
          java-version: '11'
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.0.5'
      - run: flutter clean
      - run: echo $KEY_JKS | base64 -di > android/app/release.jks
      - run: flutter pub get
      - run: flutter build apk
      - uses: actions/upload-artifact@v1
        with:
          name: app-release.apk
          path: build/app/outputs/apk/release/app-release.apk
          token: ${{ secrets.GITHUB_TOKEN }}
  build_windows:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          channel: 'beta'
      - run: flutter config --enable-windows-desktop
      - run: flutter build windows
      - uses: actions/upload-artifact@v1
        with:
          name: windows-build
          path: "build/windows/runner/Release"
          token: ${{ secrets.GITHUB_TOKEN }}



The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM