flutter:重命名Rename

是什么

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.xmlInfo.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.xmlandroid:label
    • 可能会同步更新 res/values/strings.xml 中的 app_name,因为 Android 最终显示的是 strings 资源
  • iOS
    • ios/Runner/Info.plistCFBundleName

包名(Bundle ID / applicationId)

  • Android
    • android/app/build.gradleapplicationId
    • android/app/src/main/AndroidManifest.xmlpackage
    • 文件夹路径 android/app/src/main/kotlin/...java/... 也会修改(如果你用 Kotlin/Java 包结构和旧包名一致)
  • iOS
    • ios/Runner.xcodeproj/project.pbxprojPRODUCT_BUNDLE_IDENTIFIER
    • 可能会同步更新 ios/Runner/Info.plistCFBundleIdentifier(有时候是引用 PRODUCT_BUNDLE_IDENTIFIER

×

喜欢就点赞,疼爱就打赏