Open2

Flutterプロジェクトの初期セットアップ

yorifujiyorifuji
  • .gitignore に追加
# environment and secrets
.env*
.secrets*
  • git commit
  • pubspec.yaml を version: 0.9.9+1 に変更
  • dev_dependency に cider と pedantic_mono を追加
flutter pub add \
  dev:cider \
  dev:very_good_analysis
flutter pub add \
 freezed_annotation \
 json_annotation \
 dev:build_runner \
 dev:freezed \
 dev:json_serializable
flutter pub add \
  hooks_riverpod \
  flutter_hooks \
  riverpod_annotation \
  dev:riverpod_generator \
  dev:build_runner \
  dev:custom_lint \
  dev:riverpod_lint
  • flutter pub get
  • analysis_options.yaml
analysis_options.yaml
include: package:very_good_analysis/analysis_options.yaml
linter:
  rules:
    public_member_api_docs: false
    sort_pub_dependencies: false
analyzer:
  plugins:
    - custom_lint
  exclude:
    - "**/*.g.dart"
  errors:
    invalid_annotation_target: ignore
  • open ios/Runner.xcworkspace
    • Project > TARGETS > Signing & Capabilities を開いて Team が設定されていることを確認する
    • Info.plistにApp Uses Non-Exempt Encrptionを追加する
    • Product > Archive を実行
    • Organization > Distribute App を実行
      • distribution method: App Store Connect
      • desitination: Upload
      • 以下のような画面が現れるので Name (アプリ名称)を変更して Next、これでAppStoreにレコードが作成される(アプリの情報が登録される)
      • Upload まで行う、これでアプリをApp Store Connect に手動でアップロードが実施できることを確認した 1.0.0が登録されるのでアップロードしなくても良い
  • App Store Connect にログイン
    • TestFlight を開いて 内部テスト にグループを追加
    • グループにテスターを追加
    • Invitation メールから実機にインストール
  • Android の release ビルド設定
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 415691d..67e453e 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -25,6 +25,10 @@ apply plugin: 'com.android.application'
 apply plugin: 'kotlin-android'
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 
+def keystorePropertiesFile = rootProject.file("key.properties")
+def keystoreProperties = new Properties()
+keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
+
 android {
     compileSdkVersion flutter.compileSdkVersion
     ndkVersion flutter.ndkVersion
@@ -53,13 +57,26 @@ android {
         versionName flutterVersionName
     }
 
+    signingConfigs {
+      release {
+          keyAlias keystoreProperties['keyAlias']
+          keyPassword keystoreProperties['keyPassword']
+          storeFile rootProject.file(keystoreProperties['storeFile'])
+          storePassword keystoreProperties['storePassword']
+      }
+    }
+
     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
         }
     }
 }
  • android のビルドに必要なファイルを配置
    • android/app/release.jks を配置
    • android/key.properties を配置
storeFile=app/release.jks
storePassword=***
keyPassword=***
keyAlias=***
  • build aab
    • flutter build appbundle
    • aab is build/app/outputs/bundle/release/app-release.aab
  • GooglePlayConsoleの内部テストに aab をアップロード
    • 初回に必要
  • CI/CDのセットアップ