🚀

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_IDENTIFIERCFBundleIdentifier では、一般的に キャメルケース(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