Flutterのプロジェクト名を「flutter_application_1」でそれっぽいものが出来上がってしまったあなたへ
こんにちは、ワニかず@40歳 出戻りエンジニアです。
Flutterのプロジェクト名をflutter_application_1
で何か作り始めたのはいいものの、
それっぽい形になってしまって、プロジェクト名を変更するのが億劫になった経験のある方は
恐らく私だけではないことでしょう。
ということで、今回は、
Flutterのプロジェクト名をflutter_application_1
から
変える方法についてまとめました。
今回は
flutter_application_1
を
TestApp
に変更することを考えていたとします。
pubspec.yaml
の修正
1. まず、プロジェクトの pubspec.yaml
を開き、以下の name:
を変更します。
name: TestApp
しかしながら、
この名前は 全て小文字、アンダースコア(_)のみ使用可能 なので、Flutterの制約に従い test_app
にするのが無難です。
name: test_app
2. Android のパッケージ名を変更
Flutterのデフォルトでは com.example.flutter_application_1
になっているので、適切なパッケージ名に変更します。
build.gradle
の修正
(1) 以下のファイルを開き、applicationId
を修正。
android/app/build.gradle
変更前:
android {
defaultConfig {
applicationId "com.example.flutter_application_1"
}
}
変更後:
android {
defaultConfig {
applicationId "com.example.test_app"
}
}
(2) パッケージ名のディレクトリ構造を変更
以下のディレクトリをリネーム。
android/app/src/main/kotlin/com/example/flutter_application_1
↓ 変更後
android/app/src/main/kotlin/com/example/test_app
3. iOS のバンドル識別子を変更
project.pbxproj
の変更
(1) 以下のファイルを開き、PRODUCT_BUNDLE_IDENTIFIER
を変更。
ios/Runner.xcodeproj/project.pbxproj
変更前:
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
変更後:
PRODUCT_BUNDLE_IDENTIFIER = com.example.testApp;
iOS のバンドル識別子の形式について
iOS の PRODUCT_BUNDLE_IDENTIFIER
や CFBundleIdentifier
では、一般的に キャメルケース(testApp) や ドット区切り(test.app) を使い、 スネークケース(test_app)は避ける 傾向があります。
推奨される形式
✅ com.example.testApp
(キャメルケース)
✅ com.example.test.app
(ドット区切り)
避けるべき形式
❌ com.example.test_app
(スネークケース)
なぜスネークケースは避けるのか?
Apple の公式ドキュメントでは、バンドル識別子(Bundle Identifier)にスネークケース _
を使うことを推奨していません。
実際に _
を入れてもビルドはできることが多いですが、App Store での申請やライブラリの動作に影響が出る可能性があります。
Android のパッケージ名と合わせる場合
Flutter プロジェクトでは、Android 側の applicationId
はスネークケース(test_app
)を推奨するのに対し、
iOS の PRODUCT_BUNDLE_IDENTIFIER
はキャメルケース(testApp
)やドット区切り(test.app
)を推奨するため、
完全に統一する必要はありません。
例:
- Android →
com.example.test_app
- iOS →
com.example.testApp
またはcom.example.test.app
このように プラットフォームごとに推奨される形式 を使うのが一般的です。
Firestoreの設定をしている場合
プロジェクト名が
• lib/firebase_options.dart
• ios/Runner/GoogleService-Info.plist
• android/app/google-services.json
• macos/Runner/GoogleService-Info.plist
に入っていると思うので、これらのファイルに加えて
./firebase.json
をFlutterのプロジェクトから削除し、
flutterfire configure
を実行しましょう。
Discussion