mobile
環境構築
開発フロー
個別 QA
iOS 開発時に起動しなかったら一旦これをやる
bash
rm -Rf ios/Pods ios/.symlinks ios/Flutter/Flutter.framework ios/Flutter/Flutter.podspec ios/Podfile.lock && (cd ios && pod repo update) && flutter clean(上級者むけ) .zshrc でエイリアスを登録するのもおすすめ
shell
alias flutter-ios-reset="rm -Rf ios/Pods ios/.symlinks ios/Flutter/Flutter.framework ios/Flutter/Flutter.podspec ios/Podfile.lock && (cd ios && pod repo update) && flutter clean"それぞれの意味はこちらの記事
リリースの仕方
.github/workflows/mobile_release.yml が毎日 20:00 UTC (JST 5:00) に前回タグからの差分を判定し、変更があれば mobile@{version} タグを push する。手動で回すときは同 workflow を workflow_dispatch する。
- Android / Windows: タグ作成後に
dart_mobile_deploy.ymlがビルド・デプロイする - iOS / macOS:
mobile@{version}タグを Xcode Cloud が拾ってビルドする
タグの追加/削除方法
茶屋に要相談
Finger Print の登録
Android で Google 認証機能を使うときなどに、フィンガープリントを設定する必要がある。フィンガープリントは各開発環境で別々の値が使用されている。
フィンガープリントは
shell
cd android # gradlew が相対パスに依存するので cd が必要
./gradlew signingReportで取得できる。そして、Task :app:signingReport のうち SHA-1 および SHA-256 の値を Firebase の各環境のフィンガープリント設定で登録する。
schema.graphqlの更新
必要条件 node のインストール
bash
npm i
npm run gen
flutter pub run build_runner buildINFO
Conflicting outputs were detected and the build is unable to prompt for permission to remove them エラーで異常終了した場合 --delete-conflicting-outputs フラグを付与
bash
flutter pub run build_runner build --delete-conflicting-outputs環境変数の外部注入
mobile/lib/env.dart を参照
Local の DB での開発
bash
flutter run --dart-define=LOCAL_BACKEND=truestg, prd 環境での開発
bash
flutter run --dart-define=APP_ENV=stg
flutter run --dart-define=APP_ENV=prdFlutter Gen で画像を型安全に扱う
使い方を以下を参照
デバッグ用 launch.json の例
json
{
"version": "0.2.0",
"configurations": [
{
"name": "uzu debug",
"request": "launch",
"type": "dart",
"args": ["--debug"]
},
{
"name": "uzu profile",
"request": "launch",
"type": "dart",
"args": ["--profile"]
},
{
"name": "uzu release",
"type": "dart",
"request": "launch",
"args": ["--release"]
}
]
}