Closed blendthink closed 4 months ago
現行のテンプレートプロジェクトでは、 apps/app/flavor
ディレクトリ内で定義されたフレーバーごとの json ファイルで定義された以下の項目に応じて、ビルド時にアプリ ID を動的に割り当ててそう。
apps/app/android/app/build.gradle
defaultConfig {
applicationId "${dartDefines.appId}"
applicationIdSuffix "${dartDefines.appIdSuffix}"
}
それ以外に、プロジェクト作成時に設定された以下の項目も変更する必要がある認識。
apps/app/android/app/build.gradle
android {
namespace "jp.co.yumemi.flutter_app"
}
apps/app/android/app/src/main/kotlin/jp/co/yumemi/flutter_app/MainActivity.kt
package jp.co.yumemi.flutter_app
apps/catalog
配下はゆめみ側の部分のため、現行の Bundle ID のままで問題ない認識。
The Rename CLI Tool is a utility designed to modify your Flutter project's AppName and BundleId across various platforms.
https://pub.dev/packages/rename
Package Rename handles changing 33 fields across 17 files on 6 platforms so you can focus on your awesome project.
{
"flavor": "dev",
"appName": "dev-Template",
"appId": "jp.co.yumemi.template",
"appIdSuffix": ".dev"
}
app モジュールの build.gradle で定義された namespace
apps/app/android/app/build.gradle
android {
namespace "jp.co.yumemi.flutter_app"
}
package 名とディレクトリ
apps/app/android/app/src/main/kotlin/jp/co/yumemi/flutter_app/MainActivity.kt
package jp.co.yumemi.flutter_app
参考資料:https://developer.android.com/build/configure-app-module#set_the_application_id
特別な対応は必要なし
@blendthink
本チケットで対応するかどうかは置いて、以下の項目はアプリ ID に合わせて変更する必要はありますか?
apps/app/android/app/build.gradle
の namespaceandroid {
namespace "jp.co.yumemi.flutter_app"
}
apps/app/android/app/src/main/kotlin/jp/co/yumemi/flutter_app/MainActivity.kt
package jp.co.yumemi.flutter_app
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity()
現状の namespace は本テンプレートプロジェクト作成時に割り当てられた jp.co.yumemi.flutter_app
が定義されています。
Android 開発公式ドキュメント「Configure the app module」によれば、以下のように記載されています。
It is recommended that you do the following when setting the application ID: Keep the application ID the same as the namespace. The distinction between the two properties can be a bit confusing, but if you keep them the same, you have nothing to worry about.
For a simpler workflow, keep your namespace the same as your application ID, as they are by default.
In most cases, you should keep the namespace and application ID the same, as they are by default. However, you may need to change the namespace at some point if you're reorganizing your code or to avoid namespace collisions.
@Kotaro666-dev
本チケットで対応するかどうかは置いて、以下の項目はアプリ ID に合わせて変更する必要はありますか?
はい!変更する必要ありという認識でした 🙆♂️
@blendthink
自動でアプリ ID 設定できるようにツールを開発して tools 配下に置く
上記の対応ツール開発時に、設定されるアプリ ID に応じて namespace とパッケージ名も変更する対応も一緒に含めますね!
以下の actions に追加で、アプリ ID を設定するツールを実行する対応の issue を作成する
apps/app/flavor/dev.json
の "appId" 定義を新しいアプリ ID に置換するapps/app/flavor/prd.json
の "appId" 定義を新しいアプリ ID に置換するapps/app/flavor/stg.json
の "appId" 定義を新しいアプリ ID に置換するapps/app/android/app/build.gradle
の namspace 定義を新しいアプリ ID に置換するapps/app/android/app/src/main/kotlin/
配下にアプリ ID に基づいたディレクトリ構成で MainActivity.kt を作成する
これに関する既存の Issue はありますか?
動機
提案