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

xnifntxz  于 2022-11-17  发布在  Flutter
关注(0)|答案(5)|浏览(186)

我有Flutter应用程序的开发和生产风格。
问题是开发和生产应用程序的标签和启动程序相同,因此无法看到差异。(实际上无法同时在设备上安装两者)
根据口味更改Flutter应用程序名称的简单方法是什么?
我知道可以通过修改AndroidManifest.xml和Xcode info. plist来更改应用标签和启动器。但这并不简单:必须在xml和plist文件中做额外的参考文件。这样修改是违背Flutter的目的的。
有人知道解决办法吗?
谢谢你!

camsedfj

camsedfj1#

只需在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"
    }
}

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

android:label="@string/app_name"

它将生成unResolvedapp_name,然后就完成了!

yvt65v4c

yvt65v4c2#

对于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中应用程序标记中的android:label,如下所示:

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

在主res values目录中添加一个默认的strings.xml,在这个目录中将值设置为“Default Flavor Res”这样的值,让你注意到这个风格没有字符串的资源文件。
参考:http://cogitas.net/creating-flavors-of-a-flutter-app/

e7arh2l6

e7arh2l63#

你确定你已经保持了正确的项目结构,就像在android的src包外保持flavor文件夹会造成这个问题,请参见我的android的flavor包结构,如下所示。

sz81bmfz

sz81bmfz4#

添加到pubspec.yaml flutter_flavor中:尺寸:安卓:“flutter-flavor”操作系统:“飘味”
口味:苹果:机器人:名称:“Apple应用程序”应用程序ID:“com.example.apple“谷歌广告ID:“ca-应用程序-发布-1234567890123456~1234567890” ios :名称:“Apple应用程序”捆绑包ID:“苹果”谷歌广告ID:“卡-应用-发布-1234567890123456~1234567890”

bannana:
  app:
    name: "Bannana App"
    id: "com.example.bannana"
  android:
    googleAdsId: "ca-app-pub-1234567890123456~1234567890"
  ios:
    googleAdsId: "ca-app-pub-1234567890123456~1234567890"

]生成口味

flutter pub run flutter_flavor:主菜单

jchrr9hc

jchrr9hc5#

在iOS上,您可以通过设置多个构建配置和方案,创建一个用户定义的设置(例如APP_DISPLAY_NAME),设置每个构建配置的值,然后在Info.plist中将Bundle显示名称设置为${ APP_DISPLAY_NAME }来实现相同的目的。
https://medium.com/swift2go/different-app-display-name-based-on-xcode-scheme-d709307d0c01

相关问题