2017-06-08 14 views
5

Próbuję włączyć automatyczne (bez wiersza użytkownika) składanie raportów o awariach hokej aplikację na Xamarin.Forms (Android i iOS):Xamarin.Forms + HockeyApp - Auto złożyć raporty o awariach

mam to Android w MainActivity.cs:

var customCrashListener = new CustomCrashListener(); 
CrashManager.Register(this, "appId", customCrashListener); 

gdzie CustomCrashListener brzmi:

class CustomCrashListener : CrashManagerListener 
{ 
    public bool ShouldAutoUploadCrashes() 
    { 
     return true; 
    } 
} 

to nie wysyła żadnych raportów o awariach i HockeyApp z dokumentacją Xamarin jest cienka. Próbuję też wykonać tę pracę na iOS.

Odpowiedz

5

Zawarty poniżej przykładowy kod z instrukcjami zezwalającymi na debugowanie w pakietach SDK. Po włączeniu tej opcji możesz rzucić okiem na dane wyjściowe aplikacji, aby dokładnie zidentyfikować problem. Jeśli nastąpi awaria podczas uruchamiania, pakiet SDK nie będzie miał czasu na przesłanie raportów o awariach. Także jeśli identyfikator aplikacji jest nieprawidłowy, możesz zobaczyć to zachowanie.

Będziesz musiał dołączyć słowo kluczowe "override" w swoim oddzwanianiu, jak w poniższym przykładzie. W przeciwnym razie autosend nie zostanie włączony, a monit o awaria pojawi się.

Hockey.LogLevel = 3; 
CrashManager.Register(this, AppID, new MyCrashManagerListener()); 

public class MyCrashManagerListener : CrashManagerListener 
     { 

      public override bool ShouldAutoUploadCrashes() 
      { 
       return true; 
      } 
     } 

Dla iOS, wystarczy ustawić BITCrashManagerStatus w swojej AppDelegate.cs przed StartManager():

var manager = BITHockeyManager.SharedHockeyManager; 
manager.Configure(App_ID); 
manager.LogLevel = BITLogLevel.Debug; 
manager.CrashManager.CrashManagerStatus = BITCrashManagerStatus.AutoSend; 
manager.StartManager(); 
+0

Dziękuję, to działa dobrze. Testowane w Xamarin.Forms v2.3.4.247 – ethane

Powiązane problemy