Closed21

Flutterで新しいアプリを作るときの手順まとめ

kingukingu

まっさらな状態からFlutterでiOS向けとウェブアプリを構築するまでの手順の備忘録。

Firebaseも使う

kingukingu

プロジェクトルートディレクトリを作って、appを作る。
xxx.code-workspaceを追加する。

{
  "folders": [
    {
      "path": "."
    },
    {
      "path": "app"
    },
    {
      "path": "firebase"
    }
  ],
  "settings": {
    "editor.tabSize": 2
  }
}
flutter create \
    --platforms ios,web \
    --template app \
    --org dev.kingu \
    --project-name FIXME \
   app
kingukingu

pubspec.yaml を掃除して、 firebase_core を追加

Flutterバージョンを固定

environment:
  sdk: 3.6.0
  flutter: 3.27.1

buildは自動で採番するので削除

version: 1.0.0
kingukingu

Runner.xcworkspace を開いて Automatically manage signingがうまくいってるか確認する

kingukingu

https://docs.flutter.dev/deployment/flavors#creating-flavors-in-ios-and-macos

  • Schema configurations
  • Bundle Identifier suffix
  • Podfile
  • xcconfig

Podfile

project 'Runner', {
  'Debug-stg' => :debug,
  'Debug-prod' => :debug,
  'Profile-stg' => :release,
  'Profile-prod' => :release,
  'Release-stg' => :release,
  'Release-prod' => :release,
}

https://developer.apple.com/support/app-store/

# Uncomment this line to define a global platform for your project
platform :ios, '17.6'

xcconfig

https://github.com/KoheiKanagu/garage/tree/main/packages/obento/ios/Flutter

kingukingu

ビルドできるかチェック

flutter build ios --flavor stg
flutter build ios --flavor prod
kingukingu

pubspec.yaml に必要なものを追加

dart pub add slang slang_flutter dev:slang_build_runner

Firestoreを使うなら、target 'Runner' do の中にプレビルド版を入れる

  pod 'FirebaseFirestore',
    :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git',
    :tag => '11.6.0'
  • flutterfire_configure.sh 実行して upload-crashlytics-symbolsを追加
  • ビルドしてPodfile.lockを更新
kingukingu

app/.vscode/launch.json を作ってアイコンの確認

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "stg",
      "request": "launch",
      "type": "dart",
      "args": [
        "--flavor",
        "stg",
      ],
      "program": "lib/main.dart"
    },
    {
      "name": "prod",
      "request": "launch",
      "type": "dart",
      "args": [
        "--flavor",
        "prod",
      ],
      "program": "lib/main.dart"
    },
  ]
}
kingukingu

Firebase コンソールでFirestoreのデータベースを作成
App CheckでFirestoreなど有効にする

firebase init でセットアップ

kingukingu
  • dependabot.yml をコピー
  • GitHub Actionsのワークフローをコピー
  • Xcode Cloudの動作確認
  • Cloud Functionsのセットアップ
  • 手動でfirebase deployしてチェック
kingukingu

Firebaseの"統合"を設定する
Slackとの連携など

このスクラップは2025/02/06にクローズされました