package_rename_plus는 프로덕션용 Flutter 프로젝트 설정 과정을 간소화하기 위해 설계된 고성능 도구입니다. Android, iOS, macOS, Windows, Linux 등 여러 플랫폼에서 패키지 식별자, 앱 이름 및 관련 자산을 빠르게 변경할 수 있습니다. 구성 업데이트를 자동화함으로써 수작업 오류를 줄이고 배포 준비 시간을 단축합니다. 확장 또는 브랜드 재설계 시 깔끔하고 일관된 프로젝트 구조를 유지하고자 하는 개발자에게 이상적입니다.
사용 사례
재브랜딩을 위한 Flutter 앱 이름 변경
생산 배포를 위한 앱 준비
패키지 식별자 변경 자동화
크로스 플랫폼 구성 업데이트
CI/CD 파이프라인 간소화
주요 기능
초고속 실행
다중 플랫폼 지원
자동 자산 업데이트
안전한 구성 처리
명령줄 통합
적합한 대상
Flutter 개발자
앱 브랜드 재정비 팀
CI/CD 자동화 엔지니어
대규모 프로젝트 유지보수자
데브옵스 엔지니어
고려 사항
사용 전 신중한 백업이 필요합니다
사용자 지정 구성과 충돌할 수 있습니다
일회성 변경에 적합하지 않습니다
패키지 수준의 이름 바꾸기만 가능
올바른 프로젝트 구조에 따라 달라집니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Package Rename Plus
This a fork repository from official package_rename using different approach to replace the configuration.
Fixed ios issue about replace bundle identifier with or without extension targets.
Removed logger dependency that can be solved using debugPrint only to minimize dependency to others packages/plugins.
A Blazingly Fast way to configure your Bleeding Edge flutter project to be production ready.
Package Rename handles changing 37 fields across 19 files on 6 platforms so you can focus on your awesome project.
You can create configurations by adding package_rename_config key in:
Root pubspec.yaml file
package_rename_config.yaml file at root of your project or a custom folder in the project
Usage
Adding Platform Specific Configurations
package_rename_config:android:app_name:# (String) The display name of the android apppackage_name:# (String) The package name of the android appoverride_old_package:# (Optional) (String) Use this to delete the old folder structure of MainActivity or to use the existing code with the new package namelang:# (Optional) (String) The android development language {kotlin(default) or java}ios:app_name:# (String) The display name of the ios appbundle_name:# (String) The bundle name of the ios appoverride_old_package:# (String) Use this to replace the old bundle identifier with the new bundle identifierpackage_name:# (String) The product bundle identifier of the ios applinux:app_name:# (String) The window title of the linux apppackage_name:# (String) The application id of the linux appexe_name:# (String) The executable name (binary name) of the linux appmacos:app_name:# (String) The product name of the macos apppackage_name:# (String) The product bundle identifier of the macos appcopyright_notice:# (String) The product copyright of the macos appweb:app_name:# (String) The title of the web app and PWAshort_app_name:# (String) The short display name of the PWA (Optional, defaults to app_name if not set)description:# (String) The description of the web app and PWAwindows:app_name:# (String) The window title & software name of the windows apporganization:# (String) The organization name (company name) of the windows appcopyright_notice:# (String) The legal copyright of the windows appexe_name:# (String) The executable name (binary name) of the windows app
dart run package_rename_plus --flavour=flavour_name
or
dart run package_rename_plus -f flavour_name
With custom config file location:
dart run package_rename_plus --flavour=flavour_name --path="path/to/package_rename_config.yaml"
Known Issues
iOS and macOS issues with PRODUCT_BUNDLE_IDENTIFIER:
The PRODUCT_BUNDLE_IDENTIFIER's in ios/Runner.xcodeproj/project.pbxproj and macos/Runner.xcodeproj/project.pbxproj have different values for different targets. Like, in my case:
Hence, to properly change the PRODUCT_BUNDLE_IDENTIFIER without removing the Extension name, make sure all PRODUCT_BUNDLE_IDENTIFIER's except the DEFAULT ones are enclosed in double quotes ("").