Flutter 프로젝트 생성 후 패키지명 변경하는 방법
이 글에서 다루는 내용
Flutter CLI로 프로젝트를 생성하면 패키지명이 --org와 프로젝트명의 조합으로 자동 생성된다. 하지만 실무에서는 프로젝트명과 패키지명을 다르게 설정하고 싶은 경우가 많다. 이 글에서는 Flutter 프로젝트 생성 후 Android와 iOS 양쪽의 패키지명(번들 ID)을 안전하게 변경하는 방법을 다룬다.
문제 상황
flutter create 명령어로 프로젝트를 생성하면 패키지명은 아래와 같이 자동으로 결정된다.
fvm flutter create \
--org com.ytylab \
--platforms android,ios \
eco_green_flutter
위 명령어 실행 시 자동으로 설정되는 패키지명:
com.ytylab.eco_green_flutter
Flutter CLI는 --package-name 옵션을 제공하지 않기 때문에 프로젝트명과 패키지명을 처음부터 분리해서 지정할 수 없다. 원하는 패키지명이 com.ytylab.ecogreen 이라면 생성 후 별도로 변경해야 한다.
방법 1. change_app_package_name 패키지 사용 (권장)
수동으로 변경하면 Android와 iOS에서 수정해야 할 파일이 여러 개이고, 하나라도 누락되면 빌드 오류가 발생한다. change_app_package_name 패키지를 사용하면 한 번의 명령어로 모든 파일을 안전하게 변경할 수 있다.
설치
dart pub add change_app_package_name --dev
패키지명 변경
dart run change_app_package_name:main com.ytylab.ecogreen
변경되는 파일 목록
Android
android/app/build.gradle—applicationIdandroid/app/src/main/AndroidManifest.xml—package- 기존 패키지 디렉토리 구조 및 MainActivity 경로
iOS
ios/Runner.xcodeproj/project.pbxproj—PRODUCT_BUNDLE_IDENTIFIER
방법 2. 수동 변경
패키지 설치 없이 직접 변경하고 싶다면 아래 파일들을 각각 수정한다.
Android
android/app/build.gradle
android {
defaultConfig {
applicationId "com.ytylab.ecogreen" // ← 변경
}
}
android/app/src/main/AndroidManifest.xml
<manifest xmlns:android="..."
package="com.ytylab.ecogreen"> <!-- ← 변경 -->
기존 MainActivity.kt 경로도 패키지 구조에 맞게 이동해야 한다.
android/app/src/main/kotlin/com/ytylab/ecogreen/MainActivity.kt
파일 상단의 패키지 선언도 변경한다.
package com.ytylab.ecogreen
iOS
Xcode에서 직접 변경하는 것이 안전하다.
Xcode → Runner → Signing & Capabilities
→ Bundle Identifier → com.ytylab.ecogreen 으로 변경
또는 ios/Runner.xcodeproj/project.pbxproj 파일에서 PRODUCT_BUNDLE_IDENTIFIER 항목을 찾아 변경한다.
방법 3. Android Studio로 프로젝트 생성 시 처음부터 분리
Android Studio의 New Flutter Project 마법사에서는 프로젝트명과 패키지명을 처음부터 별도로 설정할 수 있다.
Project name: eco_green_flutter
Organization: com.ytylab.ecogreen
생성 결과:
프로젝트명 (폴더명, pubspec.yaml): eco_green_flutter
패키지명 (Android / iOS): com.ytylab.ecogreen
CLI 방식의 번거로움 없이 처음부터 원하는 패키지명을 확정할 수 있어 출시 예정인 앱이라면 이 방법도 좋은 선택이다.
방법 비교
| 방법 | 난이도 | 안전성 | 추천 상황 |
|---|---|---|---|
| change_app_package_name | 쉬움 | 높음 | CLI로 생성한 후 변경할 때 |
| 수동 변경 | 어려움 | 낮음 (누락 위험) | 직접 파일 구조를 이해하고 싶을 때 |
| Android Studio 생성 시 지정 | 쉬움 | 높음 | 처음부터 패키지명을 확정할 때 |