Не удается заставить HockeyApp работать на iOS с помощью Xamarin Forms

Я пытаюсь использовать HockeyApp в проекте iOS с формами xamarin.

Он отлично работает на Android, но я не могу заставить его работать на iOS.

Вот мой код AppDelegate для HockeyApp:

var manager = BITHockeyManager.SharedHockeyManager;
manager.Configure("----");
manager.CrashManager.Init();
manager.LogLevel = BITLogLevel.Verbose;
manager.CrashManager.CrashManagerStatus = BITCrashManagerStatus.AutoSend;
manager.StartManager();
manager.Authenticator.AuthenticateInstallation(); 

if (BITHockeyManager.SharedHockeyManager.CrashManager.DidCrashInLastSession)
{
    runInSafeMode = true;
    Thread.Sleep(5000);
}

Позже в коде я выбрасываю NotYetImplementedException.

Исключение правильно отлавливается и отправляется на сервер на Android, но я не могу заставить его работать на iOS.

BITHockeyManager.SharedHockeyManager.CrashManager.DidCrashInLastSession всегда имеет значение false.

Я также пробовал без прикрепленного отладчика, поскольку я прочитал, что исключение отладчика catch перед SDK все еще не работает.

Любые идеи ?

РЕДАКТИРОВАТЬ: дополнительная информация

Я пробовал Visual Studio Mobile Center, отлично работает на android, такая же проблема с iOS, HasCrashedInLastSessionAsync всегда ложно

Я переместил исключение throw за пределы основного метода, на всякий случай, все та же проблема, исключение похоже не обнаружено API

Отключил отладку вдобавок не подключал отладчик, еще пробовал компилировать в Release, ничего нового.

Я удалил вызов Init и AuthenticateInstallation, все та же проблема.


person Emmanuel Istace    schedule 20.09.2017    source источник
comment
Попробуйте удалить manager.CrashManager.Init() и manager.Authenticator.AuthenticateInstallation(). Я тоже не устанавливаю LogLevel, но это не должно ничего повредить. Я считаю, что manager.Authenticator вещи нужны только в том случае, если вы планируете заниматься чем-то другим, кроме обработки исключений и аналитики.   -  person hvaughan3    schedule 20.09.2017
comment
@ hvaughan3, спасибо за ответ, я безуспешно пытался без них, все еще не получая DidCrashInLastSession в true.   -  person Emmanuel Istace    schedule 20.09.2017
comment
И сбои не отображаются на портале сайта Hockey App после перезапуска приложения? (Вы должны перезапустить приложение после того, как необработанное исключение приведет к сбою приложения, чтобы исключение появилось)   -  person hvaughan3    schedule 20.09.2017
comment
@ hvaughan3 нет и что более важно DidCrashInLastSession остается в false. Поэтому в следующий раз, когда мое приложение загрузится, она не сможет загрузиться в безопасном режиме, чтобы SDK мог отправить исключение. Я попробовал Visual Studio Mobile Center, и у меня точно такая же проблема, все выглядит правильно, но когда я читаю Crashes.HasCrashedInLastSessionAsync (), он имеет значение false. Когда с подключенным отладчиком или без него. Похоже, что необработанное исключение не улавливается SDK.   -  person Emmanuel Istace    schedule 20.09.2017
comment
Вы ведь не ловите исключения, верно? Не уверен, как бы это было работать на Android, если бы вы были, но просто хотели убедиться. Я не могу себе представить, что еще может вызвать проблемы, кроме, возможно, iOS Linker, который вы могли бы попробовать отключить, чтобы исключить это.   -  person hvaughan3    schedule 20.09.2017
comment
Была ли у вас какая-нибудь сторонняя библиотека, которая может обнаруживать сбой в вашем проекте iOS?   -  person Kevin Li    schedule 21.09.2017
comment
@EmmanuelIstace Получили ли вы какое-нибудь решение этой проблемы? Я также сталкиваюсь с той же проблемой при интеграции hockeyApp на iOS в формы Xamarin.   -  person Moni Bhattacharya    schedule 06.02.2018


Ответы (1)


Куда вы помещаете свой код Hockey Init?

У меня он работал с global::Xamarin.Forms.Forms.Init(); после Hockey Init в моем FinishedLaunching методе.

Что-то вроде этого:

var manager = BITHockeyManager.SharedHockeyManager;
...
manager.StartManager();
global::Xamarin.Forms.Forms.Init();
person IvanF.    schedule 01.12.2017
comment
Привет, спасибо за ответ, но я больше не работаю в этой компании. Я отправлю сообщение своим бывшим коллегам - person Emmanuel Istace; 22.03.2018
comment
Хорошо, спасибо :) Если это так, установите его как правильный ответ - person IvanF.; 22.03.2018