Flutter 笔记 | 修改 App 图标、名称、启动页、版本号

3,954 阅读3分钟

追随鸡老大,点击积累~

在这里插入图片描述

前言

对于什么都不懂直接上手 Flutter 开发的小 Android 而言,想要保证进度的同时还能帮助公司小伙伴,只能晚上熬夜补裤裆,各种翻阅官方以及前辈的文章。

还是希望自己整理一份属于自己的东西,若干年后,点击查看,还能回想起现在艰辛讨生活的自己如何在帝都各种熬夜,然后和孩子吹牛逼~ 😂😂😂

动笔前,犹豫好久,要怎么样轰轰烈烈来篇记录呢?想想各位掘金大佬,还是不得瑟了,依旧项目情况,整理自己的 Flutter 笔记,然后慢慢进行了解 Flutter 吧~

附上之前基于 macOS 配置 Flutter 链接,方便日后自己查看:

加油呀,万一一不小心优秀了呢~

一、移动端 Icon 替换

1. Android 修改应用图标

通过 Android Studio 打开 Flutter 中 android Module,右键选择 “New ===> Image Asset”:

随后打开对应 Icon,调整大小:

此时会自动为你在不同的分辨率下生成对应的 Icon:

调整 AndroidManifest 文件:

<application
        android:name="io.flutter.app.FlutterApplication"
        android:icon="@mipmap/ic_launcher"
        android:label="studyapp"
        android:roundIcon="@mipmap/ic_launcher_round"> <!-- 添加对于圆形 Icon 支持 -->

运行 Flutter 到 Android 设备查看效果即可:

2. iOS 修改应用图标

找了个图标生成网站:

上传对应的 Icon 选择生成的一些基本参数,这里感觉默认就够用了:

随后选择默认开始生成:

随后查看效果,生成速度很快~

接下来用 Xcode 打开对应的 ios module,替换对应资源:

下载已生成的图标,选取 iOS 图标资源复制到以下地址中:

  • ios ===> Runner ===> Assets.xcassets ===> AppIcon.appiconset

随后替换 Contents.json 文件即可。

运行查看效果:

俩者一对比,还是 Android 好,哈哈哈~

二、移动端启动页处理

1. Android 修改启动页

Step 1:为 Android Style 中新增全屏样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Theme applied to the Android Window while the process is starting -->
    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <!-- Show a splash screen on the activity. Automatically removed when
             Flutter draws its first frame -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- Theme applied to the Android Window as soon as the process has started.
         This theme determines the color of the Android Window while your
         Flutter UI initializes, as well as behind your Flutter UI while its
         running.
         
         This Theme is only used starting with V2 of Flutter's Android embedding. -->
    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowBackground">@android:color/white</item>
    </style>
</resources>

查看下面截图可看详细目录地址:

Step 2:修改 launch_background 文件

先把 UI 给你提供的启动页图片对应的放在 drawable 中。

随后开启定义你的启动页图片:

<?xml version="1.0" encoding="utf-8"?><!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />

    <!-- You can insert your own image assets here -->
    <item>
        <bitmap
            android:gravity="fill"
            android:src="@drawable/launch_image" />
    </item>
</layer-list>

Step 3:调整 AndroidManifest 文件,此处感谢 Yiphone 童鞋

<!-- Fix 黑屏 -->
<meta-data
    android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
    android:value="true" />

Step 4:运行查看效果

效果如下,我这是随便反编译一个 Apk 拿到的启动图:

2. iOS 修改启动页

这块我觉得 iOS 还蛮不错的,很 easy,替换下面的三张图就好:

效果都一样,这里就不放置效果图咯。

有个坑点就是少用模拟器,模拟器运行发现会有较长一段时间白屏,实际运行真机则没有这个问题。郁闷了我。

三、修改应用名称

1. 修改 Android 应用名称

按照如下地址,打开 AndroidManifest 并修改 application 节点下的 android:label 内容即可:

  • android ===> app ===> src ===> main ===> AndroidManifest

2. 修改 iOS 应用名称

按照如下地址修改 info.plist 中的 CFBundleName 值:

  • ios ===> Runner ===> Info.plist ===> CFBundleName

四、修改应用版本号

起初我以为是和 Android 原生修改一样,但是在 build 中发现了如下对于版本号的判断:

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

而最上面则直接加载了本地的 local.properties 文件:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

打开一看:

sdk.dir=/Users/HLQ/Library/Android/sdk
flutter.sdk=/Users/HLQ/flutter
flutter.buildMode=release
flutter.versionName=1.0.0
flutter.versionCode=1

原来在这。

  • But,你以为修改这就好使了?

  • 当然不是。

你需要修改你的 yaml 文件中的版本名称以及版本号才可以,如下所示:

这里特意截取出来:

version: 版本名称(例如:1.0.0)+版本编号(例如:1)

随后执行 clean 以及 pub 即可,如下:

输出如下:

/Users/HLQ/flutter/bin/flutter --no-color clean
Cleaning Xcode workspace...                                         3.2s
Deleting build...                                                2,759ms (!)
Deleting .dart_tool...                                              10ms
Deleting Generated.xcconfig...                                       0ms
Deleting flutter_export_environment.sh...                            0ms
Process finished with exit code 0

/Users/HLQ/flutter/bin/flutter --no-color pub get
Running "flutter pub get" in xxx_app...                        0.8s
Process finished with exit code 0

到此,版本号修改完毕~不信的话你去看看 local 文件:

是不是自动变啦~

Thanks