Flutter:不同的应用程序图标和应用程序名称取决于 release/production 构建或 debug/development 构建?
Flutter: different app icon and app name depending on release/production build or debug/development build?
是否有任何方法可以根据所选的构建模式(开发或生产)更改应用程序的名称and/or应用程序的图标?
release mode -> Logo A & <app_name>
debug mode -> Logo B & <app_name>-dev
我一直在寻找但找不到任何东西 — 或者没有在正确的地方搜索。有人可以帮忙吗?
如果您尝试构建 Android 应用程序,则应遵循几个步骤
请注意,如果您想将这两个应用程序保留在一台设备中,您应该更改应用程序的包名称,这可以通过在应用程序级别内添加后缀轻松完成 build.gradle
projectName/android/app/build.gradle
调试模式的构建类型的后缀,如下所示:
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix ".debug"
}
}
应用名称:
在你的项目文件夹中有一个名为android/app/src
的文件夹,在里面,你会发现另外三个文件夹
移动到这个debug
目录中并添加一个名为res
的文件夹,在那里你将能够存储将在开发(调试)模式中使用的资源并在其中创建一个名为 values
的目录
创建一个名为strings.xml
的文件,在此文件夹中,您可以存储动态应用程序的名称
在这里您将定义您的应用程序的名称,将以下代码复制到其中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">app_name-DEV</string>
</resources>
- 此外,您还必须将
string.xml
文件添加到主文件夹(在调试文件夹下)的相同路径中 main/res/values
中,您应该应用不同的名称对于键 app_name
这样的:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">app_name-DEV</string>
</resources>
- 在主文件夹中,有一个名为:
AndroidManifest.xml
的文件,在里面删除行android:name="${applicationName}"
因为它会引起一些冲突并更改行:android:label:"some_label"
-> android:label="@string/app_name"
- 从此文件中,复制整个标签,并将其粘贴到调试文件夹
AndroidManifest.xml
中,并在行 android:label="@string/app_name"
之前添加此行 tools:replace="android:label"
,这将启用调试清单覆盖应用程序的名称。
-> projectFolder/android/app/src/debug/AndroidManifest.xml
对于应用程序的图标:
- 在
projectFolder/android/app/src/debug/res
中你应该创建 mipmap 文件夹(你可以从 projectFolder/android/app/src/main/res
文件夹中复制它们然后修改图标)
- 在里面,你应该添加一个相同的开发模式的图标,为此,你可以按照下面的包flutter_launcer_icon(请确保最后你会运行 这个命令:
flutter pub run flutter_launcher_icons:main
,但你仍然可以手动添加它们)
就是这样。
希望我足够彻底:)
如果您有任何问题,请告诉我
最终,我使用了一个名为 flavors 的 flutter 功能,它适用于 Android 和 iOS。
这是我遵循的指南:https://youtu.be/Vhm1Cv2uPko
对于使用 VS Code 的开发人员,我创建了一个 VS Code 配置文件,以便更轻松地启动不同风格的应用程序:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Development",
"request": "launch",
"type": "dart",
"program": "lib/main_dev.dart",
"args" : ["--flavor", "development", "--target", "lib/main_dev.dart"],
// ? Keep flutterMode
"flutterMode": "debug",
},
{
"name": "Launch Production",
"request": "launch",
"type": "dart",
"program": "lib/main_prod.dart",
"args": ["--flavor", "production", "--target", "lib/main_prod.dart"],
// ? Keep flutterMode
"flutterMode": "release",
},
{
"name": "Run All Tests",
"type": "dart",
"request": "launch",
"program": "./test/",
},
]
}
此主题在链接的视频中处理。
是否有任何方法可以根据所选的构建模式(开发或生产)更改应用程序的名称and/or应用程序的图标?
release mode -> Logo A & <app_name>
debug mode -> Logo B & <app_name>-dev
我一直在寻找但找不到任何东西 — 或者没有在正确的地方搜索。有人可以帮忙吗?
如果您尝试构建 Android 应用程序,则应遵循几个步骤
请注意,如果您想将这两个应用程序保留在一台设备中,您应该更改应用程序的包名称,这可以通过在应用程序级别内添加后缀轻松完成 build.gradle
projectName/android/app/build.gradle
调试模式的构建类型的后缀,如下所示:
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix ".debug"
}
}
应用名称:
在你的项目文件夹中有一个名为
android/app/src
的文件夹,在里面,你会发现另外三个文件夹移动到这个
的目录debug
目录中并添加一个名为res
的文件夹,在那里你将能够存储将在开发(调试)模式中使用的资源并在其中创建一个名为values
创建一个名为
strings.xml
的文件,在此文件夹中,您可以存储动态应用程序的名称在这里您将定义您的应用程序的名称,将以下代码复制到其中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">app_name-DEV</string>
</resources>
- 此外,您还必须将
string.xml
文件添加到主文件夹(在调试文件夹下)的相同路径中main/res/values
中,您应该应用不同的名称对于键app_name
这样的:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">app_name-DEV</string>
</resources>
- 在主文件夹中,有一个名为:
AndroidManifest.xml
的文件,在里面删除行android:name="${applicationName}"
因为它会引起一些冲突并更改行:android:label:"some_label"
->android:label="@string/app_name"
- 从此文件中,复制整个标签,并将其粘贴到调试文件夹
AndroidManifest.xml
中,并在行android:label="@string/app_name"
之前添加此行tools:replace="android:label"
,这将启用调试清单覆盖应用程序的名称。
-> projectFolder/android/app/src/debug/AndroidManifest.xml
对于应用程序的图标:
- 在
projectFolder/android/app/src/debug/res
中你应该创建 mipmap 文件夹(你可以从projectFolder/android/app/src/main/res
文件夹中复制它们然后修改图标) - 在里面,你应该添加一个相同的开发模式的图标,为此,你可以按照下面的包flutter_launcer_icon(请确保最后你会运行 这个命令:
flutter pub run flutter_launcher_icons:main
,但你仍然可以手动添加它们)
就是这样。 希望我足够彻底:) 如果您有任何问题,请告诉我
最终,我使用了一个名为 flavors 的 flutter 功能,它适用于 Android 和 iOS。
这是我遵循的指南:https://youtu.be/Vhm1Cv2uPko
对于使用 VS Code 的开发人员,我创建了一个 VS Code 配置文件,以便更轻松地启动不同风格的应用程序:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Development",
"request": "launch",
"type": "dart",
"program": "lib/main_dev.dart",
"args" : ["--flavor", "development", "--target", "lib/main_dev.dart"],
// ? Keep flutterMode
"flutterMode": "debug",
},
{
"name": "Launch Production",
"request": "launch",
"type": "dart",
"program": "lib/main_prod.dart",
"args": ["--flavor", "production", "--target", "lib/main_prod.dart"],
// ? Keep flutterMode
"flutterMode": "release",
},
{
"name": "Run All Tests",
"type": "dart",
"request": "launch",
"program": "./test/",
},
]
}
此主题在链接的视频中处理。