2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[FlutterFlow] GitHub経由でデプロイする際のエラー

Last updated at Posted at 2024-03-08

初めに

FlutterFlowについて

FlutterFlowは、爆速モバイルアプリ開発を実現する、画期的なノーコードツールです。簡単なアプリなら本当にその日のうちにテストフライトまでが完了していると優れたツールです。
他のノーコードツールと違って書ける、Flutterアプリとして吐き出せる、という点が強みです。
Flutterでできることならなんだってできちゃいます。

GitHubを使った開発が可能

FlutterFlowではコードをGitHubのレポジトリにボタンひとつでプッシュする機能が備わっています。また、それだけではなく、GitHub上のブランチを指定すると、そのブランチのコードを使ってデプロイまでしてくれます。

例えば、僕はFlutterFlowではどうしても修正できない箇所を修正・追加するためにこの機能を使っています。(具体的な手順は下の通り)

  1. FlutterFlowからGitHubのレポジトリにプッシュ(flutterflowブランチが作成される)
  2. プッシュされたコードをmainブランチにマージ
  3. mainブランチからdevelopブランチを作成
  4. developブランチをローカル環境にプル
  5. とってきたコードをXcodeやその他エディター作成してプッシュ
  6. developブランチをmainブランチにマージ
  7. deployブランチを作成
  8. deployブランチを使ってFlutterFlowからデプロイ

今回生じたエラーについて

今回は以下の方法でAndroid版をデプロイする際に生じたエラーについてです。

今までにGitHubを経由せずにリリース済
今回新たにGitHub経由でリリースしようとしている

今までGitHubを経由せずにデプロイしていた際は起きなかったエラーが発生しました。
エラーログの詳細は以下のとおりです。

エラー内容
== Gathering artifacts ==

== Publishing artifacts ==

Publishing artifact app-release.apk
Publishing artifact app-release.apk
Publishing artifact app-release.aab
Publishing artifact release_mapping_mapping.txt

Publishing app-release.aab to Google Play
Google Play failed to upload artefacts. The Android App Bundle was signed with the wrong key. Found: SHA1: XX:XX:XX:XX, expected: SHA1: YY:YY:YY:YY: {
    "error": {
        "code": 403,
        "message": "The Android App Bundle was signed with the wrong key. Found: SHA1: XX:XX:XX:XX, expected: SHA1: YY:YY:YY:YY.",
        "status": "PERMISSION_DENIED"
    }
}

要は間違ったKeystore fileを使っているということらしい。

原因特定

いくつかサイトを見て回りましたが、どれも解決には至らず。
FlutterFlowの公式チャットボットに聞くと次のような返事がありました。

What does this error mean?
One of the most common causes of a publishing error when deploying to the Google Play Store is attempting to deploy using the wrong Keystore file.

特に新しい情報もなくエラーと同じ内容です。情報は続きます。

Verify That The Correct Keystore File Was Submitted For Signing
To create a new keystore, please run the following commands in your Integrated Development Environment
​keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
If the application was already deployed and the previous keystore was misplaced, contact Google Support for further assistance.

どうやらこのコマンドを入力すると、新しくkeystoreファイルが作成されてリリースできるようになるという話。結果これでは解決できませんでした。ミスリードになって新しくkeystore作ったりして大量の時間を溶かしました、、、。


その後色々調べた情報をまとめると、

  1. 今までは自動でkeystoreを使ってリリースしてくれていたらしい
  2. GitHubでリリースする場合は設定ファイルbuild.gradleが自動では更新されない

ということでエラーが吐かれているっぽいことが判明。
なので、今まで使っていたkeystoreの情報を取得して、それを手動で反映させる必要がありそうです。

対処法

1. 今まで使っていたkeystoreの情報を確認

keystoreの情報はService Account Credentialsの右側に鍵マークが出てきます。
※画像はすでに表示されていませんが、「Credentials Set」の右にオレンジのボタンが出てきます。

スクリーンショット 2024-03-08 15.27.15.png

zipファイルとしてダウンロードされるので、展開して内容を確認します。
二つファイルが入っていると思いますが

  • credentials.txt :keystoreの各種情報
  • sample-app-xxx.jks :keystoreファイル
    です。

credentials.txtの中に書かれている値はFlutterFlowに設定する値です。

credentials.txt
    alias: sample-app-xxxx
    alias password: xxxxxxxxxxxxxxxxxx
    keystore password: xxxxxxxxxxxxxxxxxx
    

2. ファイルの修正

android/app/build.gradleを修正します。
修正できたらGitHubのリポジトリにプッシュしてください。

android/app/build.gradle
    ...
    
    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
-            // signingConfig signingConfigs.debug
+           signingConfig signingConfigs.release
        }
    }

    ...

3. FlutterFlow側の設定変更

Setting > App Settings > Mobile deploymentからAdvanced Settingsの設定を行う。

  1. Keystoreファイルに、sample-app-xxx.jksをアップロード
  2. Keystore Alias にcredentials.txtのaliasを入力
  3. Deployを押すとパスワードを求められるのでcredentials.txtのpasswordを入力

スクリーンショット 2024-03-08 16.31.22.png

これで無事デプロイができるようになるはずです。

最後に

対処するのに数時間溶かしました🥲
同じ問題でお悩みの方が少しでも早く解決できることをお祈りしています。
他にもいろんなバグが出ることもありますが、FlutterFlowとても便利なので、これからも使い続けたいですね。

XでもFlutterFlowに関する投稿をたまにあげてます。見ていただけると泣いて喜びます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?