我有Flutter应用程序的开发和生产风格。问题是开发和生产应用程序的标签和启动程序相同,因此无法看到差异。(实际上无法同时在设备上安装两者)根据口味更改Flutter应用程序名称的简单方法是什么?我知道可以通过修改AndroidManifest.xml和Xcode info. plist来更改应用标签和启动器。但这并不简单:必须在xml和plist文件中做额外的参考文件。这样修改是违背Flutter的目的的。有人知道解决办法吗?谢谢你!
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,然后就完成了!
yvt65v4c2#
对于android,在src下为每个风格创建一个目录,在每个源代码中创建一个名为res的目录,并在其中创建一个名为values的目录。然后在每个values目录中创建一个名为strings.xml的文件将以下内容添加到此文件:
res
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,如下所示:
app_name
<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/
e7arh2l63#
你确定你已经保持了正确的项目结构,就像在android的src包外保持flavor文件夹会造成这个问题,请参见我的android的flavor包结构,如下所示。
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:主菜单
jchrr9hc5#
在iOS上,您可以通过设置多个构建配置和方案,创建一个用户定义的设置(例如APP_DISPLAY_NAME),设置每个构建配置的值,然后在Info.plist中将Bundle显示名称设置为${ APP_DISPLAY_NAME }来实现相同的目的。https://medium.com/swift2go/different-app-display-name-based-on-xcode-scheme-d709307d0c01
5条答案
按热度按时间camsedfj1#
只需在android项目app gradle中添加以下内容即可:
然后在您的AndroidManifest中使用以下代码:
它将生成unResolvedapp_name,然后就完成了!
yvt65v4c2#
对于android,在src下为每个风格创建一个目录,在每个源代码中创建一个名为
res
的目录,并在其中创建一个名为values
的目录。然后在每个
values
目录中创建一个名为strings.xml
的文件将以下内容添加到此文件:
这将创建一个名为
app_name
的字符串,该字符串可在Android清单中使用。要使用该字符串,请更改AndroidManifest.xml中应用程序标记中的android:label,如下所示:
在主res values目录中添加一个默认的
strings.xml
,在这个目录中将值设置为“Default Flavor Res”这样的值,让你注意到这个风格没有字符串的资源文件。参考:http://cogitas.net/creating-flavors-of-a-flutter-app/
e7arh2l63#
你确定你已经保持了正确的项目结构,就像在android的src包外保持flavor文件夹会造成这个问题,请参见我的android的flavor包结构,如下所示。
sz81bmfz4#
添加到pubspec.yaml flutter_flavor中:尺寸:安卓:“flutter-flavor”操作系统:“飘味”
口味:苹果:机器人:名称:“Apple应用程序”应用程序ID:“com.example.apple“谷歌广告ID:“ca-应用程序-发布-1234567890123456~1234567890” ios :名称:“Apple应用程序”捆绑包ID:“苹果”谷歌广告ID:“卡-应用-发布-1234567890123456~1234567890”
]生成口味
flutter pub run flutter_flavor:主菜单
jchrr9hc5#
在iOS上,您可以通过设置多个构建配置和方案,创建一个用户定义的设置(例如APP_DISPLAY_NAME),设置每个构建配置的值,然后在Info.plist中将Bundle显示名称设置为${ APP_DISPLAY_NAME }来实现相同的目的。
https://medium.com/swift2go/different-app-display-name-based-on-xcode-scheme-d709307d0c01