首页 > 解决方案 > Xamarin.Forms 和 AppCenter:在 Android 设备的发布模式下未跟踪事件

问题描述

我开发了一个小型Xamarin.Forms.Shell 应用程序:此应用程序包含4 个选项卡,其中默认主页包含一些基本信息。

我正在使用AppCenter来跟踪一些事件,例如页面显示、用户点击、API 调用……

App.xaml.cs我指定了 2 种情况(调试/产品)来注册AppCenter

protected override void OnStart()
{
    // AppCenter
#if DEBUG
    AppCenter.Start("ios=xxx;" +
            "android=yyy;",
            typeof(Analytics), typeof(Crashes));
#else
    AppCenter.Start("ios=aaa;" +
            "android=bbb;",
            typeof(Analytics), typeof(Crashes));
#endif
}

然后,在HomePage 上 ViewModel,我这样做:

public HomeViewModel()
{
    _eventTracker = new AppCenterEventTracker();
    //...
    _eventTracker.Display("HomePage");
}

其中指的是:

public virtual void Display(string page, ICollection<KeyValuePair<string, string>> optionalParams = null)
{
    var mainParams = new List<KeyValuePair<string, string>>
    {
        new KeyValuePair<string, string>(EventProperty.Page, page),
    };
    Analytics.TrackEvent(EventType.Display, BuildParameters(mainParams, optionalParams));
}

在通过另一个选项卡显示的NewsPage ViewModel上,代码为:

public NewsViewModel()
{
    _eventTracker = new AppCenterEventTracker();
    //...
    _eventTracker.Display("NewsPage");
}

这在iOSAndroid的调试模式下效果很好:我可以在AppCenter中为所有页面(主页和其他页面,如NewsPage)检索此事件

但是,当应用程序以Release模式或通过AppCenter构建时, HomePage不是这种情况:我只为 iOS 检索此事件,而不为 Android 检索此事件。对于像NewsPage这样的其他页面,我没有遇到任何问题:显示很好地考虑到了......

所以我认为这个问题与我的应用程序中默认显示的选项卡有关:HomePage

你能解释一下吗?

编辑:

感谢@Dmitriy Kirakosyan,我做了一些新的测试:我也看到在调试模式下,主页显示的事件不再被跟踪。AppCenter中,我可以看到可以追溯到很久以前的痕迹,但不是最近几周。

这可能与包更新(Xamarin.Forms、AppCenter、...)有关,因为我没有更改 AppCenter 初始化或事件跟踪...

奇怪的是,我可以在主页显示跟踪之前很好地调用的调试模式下看到。AppCenter.Start()

但是,当我检查此跟踪的值AppCenter.ConfiguredAnalytics.IsEnabledAsync()之前的值时,两者都有False

var test1 = AppCenter.Configured;
var test2 = Analytics.IsEnabledAsync().Result;
_eventTracker.Display(EventPage.HomePage);

标签: c#xamarin.formsanalyticsvisual-studio-app-centervisual-studio-app-center-build

解决方案


推荐阅读