Flutterのプロジェクト名を「flutter_application_1」でそれっぽいものが出来上がってしまったあなたへ
こんにちは、ワニかず@40歳 出戻りエンジニアです。
Flutterのプロジェクト名をflutter_application_1で何か作り始めたのはいいものの、
それっぽい形になってしまって、プロジェクト名を変更するのが億劫になった経験のある方は
恐らく私だけではないことでしょう。
ということで、今回は、
Flutterのプロジェクト名をflutter_application_1から
変える方法についてまとめました。
今回は
flutter_application_1を
TestAppに変更することを考えていたとします。
1. pubspec.yaml の修正
まず、プロジェクトの pubspec.yaml を開き、以下の name: を変更します。
name: TestApp
しかしながら、
この名前は 全て小文字、アンダースコア(_)のみ使用可能 なので、Flutterの制約に従い test_app にするのが無難です。
name: test_app
2. Android のパッケージ名を変更
Flutterのデフォルトでは com.example.flutter_application_1 になっているので、適切なパッケージ名に変更します。
(1) build.gradle の修正
以下のファイルを開き、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 のバンドル識別子を変更
(1) project.pbxproj の変更
以下のファイルを開き、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