Приложение падает на устройстве, но не в симуляторе - PullRequest
1 голос
/ 08 марта 2012

У меня есть приложение, которое вызывает веб-сервис. Он отлично работает в эмуляторе, но вылетает на устройстве. При отладке происходит сбой при первом обращении к веб-службе. Следующая информация, которую я получаю:

7 марта 15:58:52 Justins-iPhone SpringBoard [15]: Мое приложение не запустилось вовремя

7 марта 15:58:52 Justins-iPhone SpringBoard [15]: принудительное сообщение о сбое MyApp [112] ...

7 марта 15:58:52 Justins-iPhone SpringBoard [15]: завершено создание отчетов о сбоях.

7 марта 15:58:52 Джастинс-iPhone com.apple.launchd [1] (UIKitApplication: My App [0xc356] [112]): (UIKitApplication: My App [0xc356]) Выход: Убит: 9

7 марта 15:58:52 Justins-iPhone SpringBoard [15]: приложение «Мое приложение» вышло ненормально с сигналом 9: убито: 9

7 марта 15:58:52 Джастинс-iPhone ReportCrash [113]: сохраненный аварийный отчет в /var/mobile/Library/Logs/CrashReporter/MyApp_2012-03-07-155852_Justins-iPhone.plist с использованием uid: 0 gid: 0 , синтетический_идентификатор: 501 egid: 0

Любая помощь будет принята с благодарностью, я понятия не имею, что происходит.

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Если вы выполняете вызов этой службы в FinishedLaunching в AppDelegate и это занимает более ~ 17 секунд, устройство убьет ваше приложение.

Вообще говоря, любые связанные с IO задачи, такие как веб-службы, должны быть выгруженыв фоновый поток:

_client = new ServiceClient();
_client.DoSomethingCompleted += Handle_DoSomethingCompleted;
_client.DoSomethingAsync();

Те же самые ограничения могут или не могут быть применены в симуляторе.

1 голос
/ 08 марта 2012

Не выполняйте задачи блокировки в главном потоке, используйте асинхронный или новый поток.Проблема в том, что вы опрашиваете веб-сервис до отображения первого представления.Это приводит к тому, что время ожидания вашего приложения истекает, и ios убивает ваш процесс.

Mar 7 15:58:52 Justins-iPhone SpringBoard[15] : My App failed to launch in time

...