Приложение вылетает, но только тогда, когда оно собрано для специального дистрибутива. - PullRequest
1 голос
/ 04 февраля 2011

Моя проблема в этом.У меня есть приложение, которое прекрасно работает и работает в режиме отладки, без сбоев, ошибок памяти и т. Д. Как только я выполняю сборку Ad-hoc и пытаюсь запустить ее на устройстве, основной поток завершает работу в определенный момент, так как неточевидная причина ... Трассировка стека, которую мне удалось получить из журнала устройства, таким образом ...

0   libSystem.B.dylib               0x30d7c2d4 __kill + 8
1   libSystem.B.dylib               0x30d7c2c4 kill + 4
2   libSystem.B.dylib               0x30d7c2b6 raise + 10
3   libSystem.B.dylib               0x30d90d72 abort + 50
4   libstdc++.6.dylib               0x34981a20 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x34a83594 _objc_terminate + 104
6   libstdc++.6.dylib               0x3497fdf2 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x3497fe46 std::terminate() + 10
8   libstdc++.6.dylib               0x3497ff16 __cxa_throw + 78
9   libobjc.A.dylib                 0x34a824c4 objc_exception_throw + 64
10  CoreFoundation                  0x3587a7c2 +[NSException raise:format:arguments:] + 62
11  CoreFoundation                  0x3587a7fc +[NSException raise:format:] + 28
12  QuartzCore                      0x31071222 CALayerSetPosition(CALayer*, CA::Vec2<double> const&, bool) + 134
13  QuartzCore                      0x31071190 -[CALayer setPosition:] + 32
14  UIKit                           0x341e4378 -[UIView(Geometry) setCenter:] + 16
15  MyApp                           0x00012b2c 0x1000 + 72492
16  MyApp                           0x0001276a 0x1000 + 71530
17  UIKit                           0x341e3270 -[UIViewController view] + 104
18  UIKit                           0x341efd04 -[UIViewController contentScrollView] + 16
19  UIKit                           0x341efb74 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 24
20  UIKit                           0x341efa72 -[UINavigationController _layoutViewController:] + 18
21  UIKit                           0x341ef4cc -[UINavigationController _startTransition:fromViewController:toViewController:] + 248
22  UIKit                           0x341ef358 -[UINavigationController _startDeferredTransitionIfNeeded] + 176
23  UIKit                           0x341e30be -[UINavigationController pushViewController:transition:forceImmediate:] + 634
24  UIKit                           0x341e2e34 -[UINavigationController pushViewController:animated:] + 28
25  MyApp                           0x00004f80 0x1000 + 16256
26  UIKit                           0x3420b834 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 656
27  UIKit                           0x342cb60c -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 124
28  Foundation                      0x31181df6 __NSFireDelayedPerform + 362
29  CoreFoundation                  0x3583109c __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8
30  CoreFoundation                  0x35830b54 __CFRunLoopDoTimer + 844
31  CoreFoundation                  0x358021ae __CFRunLoopRun + 1082
32  CoreFoundation                  0x35801c80 CFRunLoopRunSpecific + 224
33  CoreFoundation                  0x35801b88 CFRunLoopRunInMode + 52
34  GraphicsServices                0x320c84a4 GSEventRunModal + 108
35  GraphicsServices                0x320c8550 GSEventRun + 56
36  UIKit                           0x341dc322 -[UIApplication _run] + 406
37  UIKit                           0x341d9e8c UIApplicationMain + 664

Другая действительно странная вещь - это если вы закрываете приложение и прекращаете его работу (после сбоя) в фоновом режиме, а затем перезапустить его, он почти сразу выдает кавычки ...

<Warning>: Application 'MyApp' exited abnormally with signal 11: Segmentation fault

Я считаю, что это ошибка доступа к памяти (неинициализированный доступ к памяти).Я не делаю ничего сумасшедшего с указателями или чем-то еще, поэтому я могу предположить, что это проблема с библиотеками CF ...

Любые мысли или помощь будут с благодарностью оценены :))

1 Ответ

2 голосов
/ 04 февраля 2011

Трудно сказать точно, какой ответ, не зная больше, но я думаю, что вы предоставляете какое-то недопустимое значение для свойства UIView center.

Есть две частиотсутствует информация, которая может помочь вам / мне найти ответ.

Во-первых, такие строки в трассировке стека должны быть символизированы:

15  MyApp                           0x00012b2c 0x1000 + 72492
16  MyApp                           0x0001276a 0x1000 + 71530

Знание того, что происходит в этих двух строкахпоможет вам отследить его, и знание того, что содержит сгенерированное исключение (начиная со строки 11 в трассировке стека), поможет в дальнейшем.Вы можете получить эту информацию, посмотрев выходные данные консоли устройства в Organizer Xcode.

Вы можете символизировать отчет о сбое, если у вас есть файл dSYM, который был создан при создании приложения для распространения AdHoc.Перетаскивание отчета о сбое в окно Организатора XCode попытается символизировать его автоматически.Если это не сработает, вы можете попробовать использовать скрипт symbolicatecrash напрямую.Он спрятан по следующему пути:

/ Разработчик / Платформы / iPhoneOS.platform / Разработчик / Библиотека / PrivateFrameworks / DTDeviceKit.framework / Версии / A / Ресурсы / symbolicatecrash

...