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

时间:2019-02-02 21:13:20

标签: android ios xcode flutter android-productflavors

我对Flutter应用程序有开发和生产的经验。

问题是开发和生产应用程序的标签和启动器都相同,因此看不到差异。 (实际上不能同时在设备上同时安装两者)

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

我知道可以通过修改的AndroidManifest.xml和Xcode中的info.plist改变应用标签和发射器。但这并不简单:必须在xml和plist文件中添加其他文件以供参考。像这样进行修改违反了Flutter的目标。

有人知道解决方案吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

只需在android项目应用gradle中使用它即可:

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

    prod {
        resValue "string", "app_name", "AppName"
    }
}

,然后在您的AndroidManifest中使用以下代码:

android:label="@string/app_name"

它将生成未解析的app_name并且已完成!

答案 1 :(得分:0)

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

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

的文件

在此文件中添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App 1</string>
</resources>

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

要使用字符串,请在AndroidManifest.xml的application标签中更改android:label,如下所示:

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

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

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

答案 2 :(得分:0)

你确定你的项目结构保持正确吗,比如在android中将flavor文件夹放在src包之外会产生这个问题,请参阅我的android风味包结构如下。

flavor depiction

相关问题