Flutter 应用配置实战:修改包名、应用名与图标

手把手讲解 Flutter 项目中修改包名、应用名称、应用图标与启动页的方法,分别覆盖 Android 与 iOS 两端的文件改动与注意事项。

Flutter&DartFlutter包名应用名应用图标启动页

flutter create 创建项目后,包名、应用名、图标这些”门面”信息往往还需要按真实需求调整。这些配置分散在 Android 与 iOS 各自的原生工程里,本文按”包名 → 应用名 → 图标 → 启动页”的顺序,逐项说明两端需要改动的文件。

提醒:包名最好在项目立项时就确定下来。中途修改包名会牵连到原生目录结构、签名、第三方 SDK 注册等多个环节,容易出问题,非必要不建议改。

一、修改包名 / Bundle ID

Android

包名涉及三处,必须保持一致:

  1. android/app/src/main/AndroidManifest.xml:修改 package="xxx.xxx.xxx"
  2. android/app/build.gradle:修改 defaultConfig 中的 applicationId "xxx.xxx.xxx"
  3. android/app/src/main/ 下的源码目录:MainActivity.java(或 MainActivity.kt)所在的包路径需要随之调整,并同步文件顶部的 package 声明。

iOS

ios/Runner/Info.plist 中修改 CFBundleIdentifier 对应的值;也可以直接在 Xcode 的 Runner target → GeneralBundle Identifier 里修改。

二、修改应用名称

Android

编辑 android/app/src/main/AndroidManifest.xml,在 <application> 节点修改:

<application
    android:label="你的应用名称"
    ... >

iOS

ios/Runner/Info.plist 中修改 CFBundleName(以及需要本地化展示名时的 CFBundleDisplayName)对应的字符串值。

三、修改应用图标

Android

Android 按屏幕密度分目录存放不同尺寸的图标,需要替换 android/app/src/main/res/ 下各 mipmap-* 目录中的 ic_launcher.png

目录尺寸
mipmap-mdpi48 × 48
mipmap-hdpi72 × 72
mipmap-xhdpi96 × 96
mipmap-xxhdpi144 × 144
mipmap-xxxhdpi192 × 192

替换完成后,确认 AndroidManifest.xml<application>android:icon 指向 @mipmap/ic_launcher

iOS

替换 ios/Runner/Assets.xcassets/AppIcon.appiconset/ 下对应尺寸的图片。如果使用了不同的文件名,需要同步更新该目录中的 Contents.json,让图标尺寸与文件名的映射关系保持一致。

用插件批量生成(推荐)

逐个尺寸手动切图很繁琐,推荐使用 flutter_launcher_icons 插件,只需准备一张高分辨率原图即可一键生成全平台图标。

pubspec.yaml 中添加配置:

dev_dependencies:
  flutter_launcher_icons: ^0.13.1

flutter_launcher_icons:
  android: "ic_launcher"
  ios: true
  image_path: "assets/icon/app_icon.png"

然后执行:

flutter pub get
dart run flutter_launcher_icons

四、修改启动页

Android

编辑 android/app/src/main/res/drawable/launch_background.xml,可以自定义背景色与启动图片的显示方式。

iOS

ios/Runner/Assets.xcassets/LaunchImage.imageset/ 下替换启动图片,并在 Contents.json 中配置 1x、2x、3x 三种分辨率的映射。

用插件统一配置(推荐)

同样地,启动页推荐使用 flutter_native_splash 插件统一管理。在 pubspec.yaml 中:

dev_dependencies:
  flutter_native_splash: ^2.3.10

flutter_native_splash:
  color: "#ffffff"
  image: assets/splash/splash_logo.png
  android: true
  ios: true

执行命令生成:

flutter pub get
dart run flutter_native_splash:create

小结

配置项AndroidiOS
包名 / Bundle IDAndroidManifest.xml + build.gradle + 源码包路径Info.plistCFBundleIdentifier
应用名称AndroidManifest.xmlandroid:labelInfo.plistCFBundleName
应用图标res/mipmap-*/ic_launcher.pngAssets.xcassets/AppIcon.appiconset
启动页res/drawable/launch_background.xmlAssets.xcassets/LaunchImage.imageset

手动修改适合理解每端的文件结构,而图标与启动页更推荐用 flutter_launcher_iconsflutter_native_splash 插件批量生成,省时且不易出错。包名则尽量在项目初期通过 flutter create --org 一次定好。