Intereting Posts
Можете ли вы привязать представление к месту? (или есть ли какая-нибудь другая работа, чтобы предотвратить просмотр из-за UIDateTimePicker?) (iOS) Открыть локальный файл pdf с помощью Child Browser – Кордова на iOS Как я могу изменить высоту ячейки таблицы и высоту веб-просмотра на основе содержимого веб-просмотра? Странное поведение BIGNUM в контуре вычисления Директива ng-show возвращает корректный, но пустой <img> только на устройстве Хотите сделать вращающуюся кнопку, которую я могу нажать во время анимации Приложение Ionic 2 загружается в браузер и Android, но не на iOS В xcode для iOS, как я могу сравнить текстовое поле с двумя строками? Как создать видео с задержкой по времени, например, приложение для фотографий? Как я могу получить красный цвет предупреждения iOS по умолчанию? Отключить выбор PushRow Оганизация папок в XCode Создание segue на основе загруженного файла конфигурации Обнаружение столкновений между двумя спрайтами (без физического тела?) IOS Какая технология доступа к данным для Monotouch

Приложение падает на iPhone 5S, но не на iPhone 4S.

У меня есть приложение для iPhone, которое я разработал и протестировал на своем iPhone 4S. Приложение выпущено на рынок, и некоторые пользователи утверждают, что приложение непригодно для использования при сбое при запуске.

Я сделал то же самое, что и пользователи, для своих устройств, используя ту же самую версию приложения на моем iPhone 4S, и я не могу заставить ее сбой.

Я был в домах пользователей и подключил их телефоны к своему компьютеру, чтобы узнать журнал, и когда я это сделаю, у меня возникают ошибки, которые я не получаю на своем телефоне и моем mac.

Я совершенно не понимаю, как я начинаю находить решение такой проблемы. У кого-нибудь есть даже самые слабые идеи?

  1. Хорошим началом будет интеграция сбора журнала сбоев, отчета о сбоях SDK в вашем приложении, таких как HockeyApp , TestFlight , Crittercism или QuincyKit .

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

  2. Перед отправкой необходимо протестировать сборку релизов. Архивируйте сборку выпуска и распространяйте ее как сборку Ad-Hoc. Вы можете загрузить сохраненный файл IPA в iDevice с помощью iTunes или Organizer. Дело в том, что вы можете протестировать сборку релизов, которая будет тем же самым, что и в App Store (они подписаны по-другому, но конфигурация сборки одинакова, если вы не изменили это).

  3. iPhone 5S поставляется с 64-разрядным процессором A7. Ваш iPhone 4 – это 32-битное устройство. Скорее всего, архитектура процессора не соответствует действительности, но, как говорит Apple: перед распространением своего приложения вы должны протестировать его на самом аппаратном обеспечении. Некоторые изменения времени выполнения могут быть обнаружены только в том случае, если приложение запущено на устройстве. Я рекомендую вам обновить набор тестовых устройств с различными моделями. У меня все еще есть старый iPhone 3GS, который отлично подходит для определения проблем производительности.

Общие комментарии, высказанные другими, верны. Добавьте аварийный журнал в ваше приложение с предварительно сделанным SDK и проверьте на самом устройстве. Я не могу добавить гораздо больше к этим моментам, но расскажу короткую историю о подобной ошибке, которую я нашел в одном из моих приложений, в надежде, что это поможет вам в решении вашей проблемы.

Наше приложение было преимущественно пользователями iPad2. Когда iPad4 был выпущен, волны наших пользователей обновились, и они начали испытывать проблему, которая отсутствовала на iPad2. Два сетевых запроса были уволены одновременно, и результат от одного из них был сбой. В конце концов мы выяснили, что это ошибка параллелизма. Результат первого запроса обрабатывался «слишком быстро», и код попадал в критический раздел кода, который не был потокобезопасным с другим обработчиком запросов.

Хотя эта ошибка все еще была возможной на iPad2, если сетевая латентность колебалась в самый раз, этого никогда не случалось. IPad4 сделал это почти каждый раз.

Вы можете использовать https://github.com/CocoaLumberjack/CocoaLumberjack lib для сбора журналов данных о сбоях от пользователей.

Рассматривали ли вы установку аварийного регистратора в своем приложении? Там много (Flurry, TestFlight, Crittercism, приложение для хоккея и т. Д.).

Большинство из них довольно просто установить – добавьте фреймворк и пару строк кода. Как только вы это сделаете, вы (надеюсь) сможете увидеть, где именно ваше приложение рушится на устройствах пользователей, без физического доступа к ним.