【Flutter】モバイルアプリのテスト版の配布手順をまとめてみた
バージョン管理
pubspec.yamlファイル内でバージョンを管理しています。
version: 1.2.3+80
上記のようなバージョニング方法をセマンティックバージョニングと呼ばれています。
アプリのバージョン管理については、下記の記事が参考になります。
例えば、バグ修正をした場合は下記の通りでパッチバージョンを上げます。
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.plistのdestinationにuploadを設定します。
こうすることで、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タブを開くと、さっきエクスポートしたビルドファイルが表示されると思います。
下記の記事が参考になると思いますが、テスターのグループを追加し、審査依頼を行う必要があります。
Androidのテスト版配布(Firebase App Distribution)
下記の手順を行う必要があります。
- app bundleファイルの作成
- firebase loginを行う
- プロジェクトの切り替えを行う
- app bundleファイルをFirebase App Distributionに配布する
- テスターグループを追加する
(1)
app bundleファイルとは、Android App Bundleであり、アプリのコンパイル済みコードとリソースが全て含まれた公開形式です。
下記のコマンドでaabファイルを生成することができます。
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