如何根据口味更改 Flutter 应用程序名称?

Flu*_*ase 5 xcode android ios android-productflavors flutter

我有 Flutter 应用程序的开发和生产风格。

问题是开发和生产应用程序的标签和启动器是相同的,所以看不出区别。(实际上不能同时安装在设备上)

根据风味更改 Flutter 应用程序名称的简单方法是什么?

我知道可以通过修改 AndroidManifest.xml 和 Xcode info.plist 来更改应用程序标签和启动器。但这并不简单:必须在xml和plist文件中制作额外的文件以供参考。像这样修改有悖于 Flutter 的目的。

有人知道解决方案吗?

谢谢!

Vah*_*iri 15

只需在 android 项目app gradle 中有这个:

flavorDimensions "default"
productFlavors {
    dev {
        resValue "string", "app_name", "AppName_DEV"
    }
    demo {
        resValue "string", "app_name", "AppName_Demo"
    }

    prod {
        resValue "string", "app_name", "AppName"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在你的AndroidManifest 中使用这个:

android:label="@string/app_name"
Run Code Online (Sandbox Code Playgroud)

它将生成 unResolved app_name并完成!


The*_*aan 9

对于 android,在 src 下为每种风格创建一个目录。在每个源中创建一个名为 的目录res,并在其中创建一个名为 的目录values

然后在每个values目录中创建一个名为strings.xml

将以下内容添加到该文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App 1</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为 的字符串app_name,可以在 Android Manifest 中使用。

要使用该字符串,请更改 AndroidManifest.xml 中应用程序标记中的 android:label,如下所示:

    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher">

Run Code Online (Sandbox Code Playgroud)

还要将默认值添加strings.xml到主 res 值目录中。在其中将值设置为“Default Flavor Res”之类的值,以使您注意到该风味没有字符串的资源文件。

参考: http: //cogitas.net/creating-flavors-of-a-flutter-app/