😎

【Flutter】モバイルアプリのテスト版の配布手順をまとめてみた

2024/03/15に公開

バージョン管理

pubspec.yamlファイル内でバージョンを管理しています。

version: 1.2.3+80

上記のようなバージョニング方法をセマンティックバージョニングと呼ばれています。
アプリのバージョン管理については、下記の記事が参考になります。
https://qiita.com/Matsuo_yoshi/items/b62b98ae2adfa8a18b28

例えば、バグ修正をした場合は下記の通りでパッチバージョンを上げます。

1.2.3 -> 1.2.4

また、新しい機能を追加した場合はマイナーバージョンを上げます。

1.2.3 -> 1.3.0

そして、アプリがリニューアルした場合はメジャーバージョンを上げます。

1.2.3 -> 2.0.0

iOSのテスト版配布(TestFlight)

まずは、ipaファイルの作成を行います。
下記のコマンドを実行すると、XCodeのビルドアーカイブ(.xcarchiveファイル)とApp Store app bundle(.ipaファイル)を作成することができます。

flutter build ipa

上記のコマンドを実行後、build/ios/ipaフォルダ内に、ExportOptions.plistが自動生成されます。

/ipa
  ├── DistributionSummary.plist
  ├── ExportOptions.plist
  ├── Packaging.log
  └── your_app_name.ipa

ExportOptions.plistdestinationuploadを設定します。
こうすることで、flutter build ipa コマンド実行後に、Apple Store Connectへのアップロードができるようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>generateAppStoreInformation</key>
    <false/>
    <key>manageAppVersionAndBuildNumber</key>
    <true/>
   <key>destination</key> 👈 ここ追加
   <string>upload</string> 👈 ここ追加
    <key>method</key>
    <string>app-store</string>
    <key>signingStyle</key>
    <string>automatic</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>YOUR_TEAM_ID</string>
    <key>uploadSymbols</key>
    <true/>
</dict>
</plist>

そして、下記のコマンドを実行するとApple Storeにビルドファイルがアップロードされます。
--export-options-plistにはExportOptions.plistファイルのパスを指定します。

flutter build ipa --export-options-plist="ios/configs/ExportOptions.plist"

何分か時間が経過すると、Apple Store Connectのアプリ内のTextFlightタブを開くと、さっきエクスポートしたビルドファイルが表示されると思います。
下記の記事が参考になると思いますが、テスターのグループを追加し、審査依頼を行う必要があります。
https://dev.classmethod.jp/articles/testfligh/

Androidのテスト版配布(Firebase App Distribution)

下記の手順を行う必要があります。

  1. app bundleファイルの作成
  2. firebase loginを行う
  3. プロジェクトの切り替えを行う
  4. app bundleファイルをFirebase App Distributionに配布する
  5. テスターグループを追加する

(1)

app bundleファイルとは、Android App Bundleであり、アプリのコンパイル済みコードとリソースが全て含まれた公開形式です。
下記のコマンドでaabファイルを生成することができます。
https://docs.flutter.dev/deployment/android

flutter build appbundle

(2)

自分のfirebaseで作成したアカウントにログインします。

firebase login:use takashi.nagano@gmail.com

(3)

次に、Firebaseのapp bundleファイルをアップロードしたいプロジェクトに切り替えます。

firebase use firebase-project-name 👈 ここはプロジェクト名を入れてください

(4)

そして、下記配布コマンドを実行します。

firebase appdistribution:distribute <aabファイルのパス> --app <FirebaseのappId> --release-notes "リリースノート" --groups "配布するテスターのグループ名"

aapファイルはbuild/app/outputs/release/app-release.aabのようになると思います。
FirebaseのappIdは下記のコマンドで確認できます。

firebase projects:list

--release-notesには例えば今回のアプリのバージョンである"ver1.2.3(80)"のように記載しても良いと思います。

--grouopsには配布するテスターのグループ名を記載してください。
こちらは後で解説します。

(5)

下記の画像の通り、Firebaseのプロジェクト管理画面を開き、App Distributionタブをタップします。
そして、必要なテスターグループを追加します。
もしengineer_teamというグループがあれば、そちらを追加します。
こちらのテスターグループの追加を自動で行うために、先ほどの--groupsにenginner_teamと指定すれば問題ないです。

Discussion