是什么
rename
是一个 Flutter/Dart 命令行工具,旨在简化 Flutter 项目中应用名称(App Name)和包标识符(Bundle ID)的修改过程。它支持多平台,包括 Android、iOS、macOS、Linux、Windows 和 Web。
- 修改应用名称(App Name):更新 Android、iOS 等平台的显示名称。
- 修改包标识符(Bundle ID):更新 Android 的
applicationId
和 iOS 的CFBundleIdentifier
。 - 自动更新配置文件:自动修改相关的配置文件,如
AndroidManifest.xml
、Info.plist
等。 - 支持多平台:支持 Android、iOS、macOS、Linux、Windows 和 Web 平台。
操作流程
全局安装 rename
工具
flutter pub global activate rename
注意事项:
- 确保安装完成后,
.pub-cache/bin
已加入系统PATH
,否则命令行无法直接使用rename
命令。 - 可以在终端执行
rename --help
检查是否生效。
备份项目
在修改之前,先备份整个 Flutter 项目,尤其是 Android/iOS 原生文件夹。
原因:修改包名(Bundle ID)涉及到多个文件和路径,如果出错可以直接恢复。
修改应用名称(App Name)
flutter pub global run rename setAppName --targets=android,ios --value="新应用名称"
注意事项:
- 修改后,应用在手机桌面显示的名字会更新。
- 只是视觉名称,不影响应用包唯一性。
修改包名 / Bundle ID
flutter pub global run rename setBundleId --targets=android,ios --value="com.example.newbundleid"
注意事项:
- 包名是唯一标识应用的关键,修改前必须谨慎。
- 修改后会影响签名、构建和发布。
- 工具会自动修改文件和路径,避免手动遗漏。
查看当前配置
获取应用名称:
flutter pub global run rename getAppName --targets=android,ios
获取包名:
flutter pub global run rename getBundleId --targets=android,ios
清理并重新构建项目
flutter clean
flutter pub get
flutter run
原因:确保所有修改生效,避免旧缓存导致的问题。
包名和应用名哪里看
应用名(App Name)
Android
- 文件路径:
android/app/src/main/AndroidManifest.xml
- 字段:
<application
android:label="你的应用名"
... >
- 解释:
android:label
就是 Android 上显示的应用名。
iOS
- 文件路径:
ios/Runner/Info.plist
- 字段:
<key>CFBundleName</key>
<string>你的应用名</string>
- 解释:
CFBundleName
就是 iOS 上显示的应用名。
包名(Bundle ID / applicationId)
Android
- 文件路径:
android/app/build.gradle
- 字段:
defaultConfig {
applicationId "com.example.myapp"
...
}
- 解释:
applicationId
是 Android 上的包名,用于在 Play Store 唯一标识应用。 - 另外,在
android/app/src/main/AndroidManifest.xml
中也会用到包名:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
iOS
- 文件路径:
ios/Runner.xcodeproj/project.pbxproj
或在 Xcode 中直接查看 Target 的 Bundle Identifier - 字段:
PRODUCT_BUNDLE_IDENTIFIER = com.example.myapp;
- 解释:
PRODUCT_BUNDLE_IDENTIFIER
就是 iOS 上的包名,用于 App Store 唯一标识应用。
执行rename命令都修改了哪些内容
flutter pub global run rename setAppName --targets=android,ios --value="新应用名称"
flutter pub global run rename setBundleId --targets=android,ios --value="com.example.newbundleid"
当执行上面命令的时候,rename
工具会自动修改多个相关文件,避免出现手动修改遗漏的问题。
应用名(App Name)
- Android
android/app/src/main/AndroidManifest.xml
→android:label
- 可能会同步更新
res/values/strings.xml
中的app_name
,因为 Android 最终显示的是 strings 资源
- iOS
ios/Runner/Info.plist
→CFBundleName
包名(Bundle ID / applicationId)
- Android
android/app/build.gradle
→applicationId
android/app/src/main/AndroidManifest.xml
→package
- 文件夹路径
android/app/src/main/kotlin/...
或java/...
也会修改(如果你用 Kotlin/Java 包结构和旧包名一致)
- iOS
ios/Runner.xcodeproj/project.pbxproj
→PRODUCT_BUNDLE_IDENTIFIER
- 可能会同步更新
ios/Runner/Info.plist
中CFBundleIdentifier
(有时候是引用PRODUCT_BUNDLE_IDENTIFIER
)