我正在使用--dart-define=myEnv=production参数来定义构建的应用程序环境。--release(这与--debugflutter 构建参数不同)。
使用参数构建时--dart-define=myEnv=prod,我需要有一个应用程序图标,而对于使用不同变量值myEnv或没有此变量的构建,我需要有另一个应用程序图标。
我没有使用任何第三方库作为图标。
我的Android图标存储在路径:android/app/src/main/res
并且iOS图标存储在路径中:ios/Runner/Assets.xcassets/AppIcon.appiconset
我只想将第二个图标放在不同的路径上,并在Info.plist和AndroidManifest.xml文件中指示类似以下内容:
...
<key>CFBundleIconFile</key>
<string>$myEnv/icon.png</string>
...
Run Code Online (Sandbox Code Playgroud)
<application
tools:replace="android:label,android:theme"
android:name=".Application"
android:label="MyCoolApp"
android:theme="@style/Theme.AppCompat"
android:icon=$myEnv/"@mipmap/launcher_icon">
...
Run Code Online (Sandbox Code Playgroud)
有一些步骤可以做到这一点:
处方:
--dart-define=ENV_FLUTTER_IMG_SUFFIX=_dev为了简洁一点,但你可以使用你自己的变量.在名称中使用(点),android 有一些问题_dev,_stage和空(对于 prod))
Ios 图标_dev和_stageempty(对于 prod))
Asset Catalog App Icon Set NameAppIconAppIcon$(ENV_FLUTTER_IMG_SUFFIX)./android/app/src/build.gradledefaultConfig2 个(如果您也想使用圆形图标)或 1 个新变量:resValue "string", "img_name", "@mipmap/ic_launcher$dartEnvironmentVariables.ENV_FLUTTER_IMG_SUFFIX"
resValue "string", "img_round_name", "@mipmap/ic_launcher_round$dartEnvironmentVariables.ENV_FLUTTER_IMG_SUFFIX"
Run Code Online (Sandbox Code Playgroud)
./android/app/src/main/AndroidManifest.xmlandroid:icon="@string/img_name"
android:roundIcon="@string/img_round_name"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1225 次 |
| 最近记录: |