【问题标题】:Different app icon for each configuration每个配置的不同应用程序图标
【发布时间】:2018-05-06 18:25:59
【问题描述】:

对于我的应用,我想要两个不同的版本(live 和 dev)。该版本将使用不同的构建配置构建。

我想要实现的是根据我使用的版本/构建配置在设备上显示不同的应用程序图标。 我已经搜索过解决方案,但只找到了一些使用不同 Manifests/csproj 的建议,但我不能采用这种方法。

那么有没有其他方法可以根据配置有不同的图标?

【问题讨论】:

  • Android Icon/RoundIcon 是清单条目,无法绕过它,您可以在代码中#if/#else 它并在编译时提供 MSBuild 属性。

标签: xamarin xamarin.forms xamarin.android


【解决方案1】:

您最好的选择是从清单中删除图标配置并将其添加到您的 MainActivity。

看起来像这样:

using Android.App;
using Android.Content.PM;
using Android.OS;
using Microsoft.Practices.Unity;
using Prism.Unity;

namespace BlankApp2.Droid
{

#if DEBUG
    [Activity(Label = "Debug BlankApp2", Icon = "@drawable/debugIcon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
#else
    [Activity(Label = "Prod BlankApp2", Icon = "@drawable/prodIcon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
#endif
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(bundle);

            global::Xamarin.Forms.Forms.Init(this, bundle);
            LoadApplication(new App(new AndroidInitializer()));
        }
    }

    public class AndroidInitializer : IPlatformInitializer
    {
        public void RegisterTypes(IUnityContainer container)
        {
            // Register any platform specific implementations
        }
    }
}

【讨论】:

    猜你喜欢
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 2015-03-29
    • 2013-05-10
    相关资源
    最近更新 更多