Приложение iPad падает в версии 4.2 дистрибутива - PullRequest
2 голосов
/ 08 декабря 2010

У меня странная проблема, которая, надеюсь, кто-то сможет пролить немного света.

У меня есть приложение ipad в AppStore, которое было выпущено, когда 3.2 был единственным доступна iOS для ipad. Приложение нормально работало на этой iOS, но как только вышла 4.2.1 для ipad и поэтому некоторые из моих пользователей обновились до новой iOS, приложение теперь падает, когда определенный UIBarButtonItem нажат. В промежутке от iOS 3.2 до, когда iOS 4.2.1 вышла, я не представил никаких обновлений, так что это было то же самое приложение, работающее на каждой iOS еще у меня была эта проблема только на 4.2

После символизации в Organizer и просмотра отчета о сбое сборки Distribution Я могу хотя бы увидеть строку кода, которая вызывает это ...

while(i < [filteredData count]) {

вот и все !! ... просто проверка во время цикла while. Последняя вещь в аварии log указывает на приведенную выше строку кода ....

FilterData - это NSMutableArray, который определенно выделяется / инициализируется в эта точка. Это на самом деле используется в другом фрагменте кода до этого без проблемы. Опять же, эта строка кода не дала моему приложению никаких проблем на iOS 3.2, но на iOS 4.2.1 оно вызывает EXC_BAD_ACCESS (SIGSEGV)

Когда я устанавливаю приложение на свое устройство через xcode с конфигурацией отладки или выпуска, оно отлично работает, но при установке из AppStore (сборка дистрибутива) оно вылетает и только на 4.2!

Просто чтобы уточнить .....

приложение отлично работает в режимах отладки и распространения на 3.2

приложение отлично работает в режиме отладки на 4.2 НО приложение вылетает в режиме распространения на 4.2

Есть мысли? ..... Потому что я в замешательстве / потерян Спасибо, что нашли время

1 Ответ

3 голосов
/ 09 декабря 2010

Возможно, это вызвано оптимизацией, сделанной компилятором в сборках Release, особенно если вы не столкнулись с проблемой в Debug

Можете ли вы рефакторинг в ...

NSUInteger count = [filteredData count];
while(i < count) {

Или отфильтрованные данные мутируют в цикле?

NSUInteger count = [filteredData count];
while(i < count) {
   blah;
   blah;
   count = [filteredData count];
}
...